Tambahkan fragmen ke URL tanpa menyebabkan pengalihan?

87

Apakah ada cara untuk menambahkan hash # ke URL saya tanpa redirect?

Dee
sumber

Jawaban:

171
window.location.hash = 'something';

Itu hanyalah JavaScript biasa.

Komentar Anda...

Hai, yang benar-benar saya butuhkan hanyalah menambahkan hash ... sesuatu seperti ini: window.location.hash = '#';tetapi dengan cara ini tidak ada yang ditambahkan.

Coba ini...

window.location = '#';

Juga, jangan lupa tentang window.location.replace()metodenya.

alex
sumber
HI, yang benar-benar saya butuhkan adalah menambahkan hash saja ... sesuatu seperti ini: window.location.hash = '#'; tetapi dengan cara ini tidak ada yang ditambahkan ..
Dee
27

Untuk HTML lurus, tanpa memerlukan JavaScript:

<a href="#something">Add '#something' to URL</a>

Atau, untuk memahami pertanyaan Anda secara lebih harfiah, cukup tambahkan '#' ke URL:

<a href="#">Add '#' to URL</a>
Jess Telford
sumber
tidak benar, karena Anda perlu mengeklik tautan untuk mengubah hash .. jadi Anda kehilangan bagian js tempat Anda memicu "klik" ..
Juan
@Juan Mengapa kita perlu "memicu" klik? Pertanyaan awal hanya menanyakan bagaimana kita dapat menambahkan #ke URL. Sebenarnya mengklik tautan seperti yang saya sarankan akan memenuhi itu. Tidak perlu JS.
Jess Telford
1
Jawaban Anda menjelaskan cara membuat tautan yang, KETIKA diklik, menambahkan fragmen ke url. Pertanyaannya menanyakan bagaimana menambahkan fragmen. Jadi jawaban Anda tidak memiliki tindakan, yaitu "klik"
Juan
2
Cukup adil, saya dapat melihat pertanyaan tersebut ditafsirkan seperti itu. Mudah-mudahan seseorang masih akan menemukan opsi ini berguna untuk kasus penggunaan mereka.
Jess Telford
6
window.location.hash = 'whatever';
Daniel Lo Nigro
sumber
5
The #prefix tidak diperlukan.
alex
@alex: Ah, saya tidak terlalu yakin apakah itu diperlukan atau tidak. window.location.hash mengembalikan hash dengan awalan #, jadi saya berasumsi demikian. Terimakasih atas klarifikasinya. :)
Daniel Lo Nigro
4
Jangan khawatir - dan itu membuat Anda bertanya-tanya mengapa ia selalu mengembalikannya.
alex
0

Coba ini

var URL = "scratch.mit.edu/projects";
var mainURL = window.location.pathname;

if (mainURL == URL) {
    mainURL += ( mainURL.match( /[\?]/g ) ? '&' : '#' ) + '_bypasssharerestrictions_';
    console.log(mainURL)
}
Tladi Ramahata
sumber