Saya ingin menulis sepotong javascript yang akan menambahkan parameter ke url saat ini dan kemudian menyegarkan halaman - bagaimana saya bisa melakukan ini?
javascript
jquery
refresh
amatir
sumber
sumber
Jawaban:
ini seharusnya bekerja (tidak diuji!)
sumber
Lebih pendek dari jawaban yang diterima, melakukan hal yang sama, tetapi menjaganya tetap sederhana:
Kami tidak harus mengubah seluruh url, hanya string kueri, yang dikenal sebagai atribut pencarian lokasi.
Ketika Anda memberikan nilai ke atribut pencarian, tanda tanya secara otomatis dimasukkan oleh browser dan halaman dimuat ulang.
sumber
window.location.search = '?param=42';
Sebagian besar jawaban di sini menyarankan bahwa seseorang harus menambahkan parameter ke URL, sesuatu seperti cuplikan berikut atau variasi serupa:
Ini akan bekerja dengan baik untuk sebagian besar kasus.
Namun
Menurut saya itu bukan cara yang benar untuk menambahkan parameter ke URL.
Karena pendekatan yang disarankan tidak menguji jika parameter sudah diatur dalam URL, jika tidak hati-hati orang akan berakhir dengan URL yang sangat panjang dengan parameter yang sama berulang beberapa kali. yaitu:
pada titik ini adalah di mana masalah dimulai. Pendekatan yang disarankan dapat dan akan membuat URL yang sangat panjang setelah beberapa halaman di-refresh, sehingga membuat URL tidak valid. Ikuti tautan ini untuk informasi lebih lanjut tentang URL panjang. Berapa panjang maksimum URL di berbagai browser?
Ini adalah pendekatan yang saya sarankan:
Dengan fungsi ini kita harus melakukan hal berikut:
sumber
if(window.location.search.indexOf('¶m=') == -1) {window.location.search += '¶m=1';}
indexOf
mungkin memperkenalkan kompleksitas yang tidak perlu pada kode.sumber
Versi yang lebih kompatibel
sumber
Silakan periksa kode di bawah ini:
sumber
Satu perbaikan bug kecil untuk jawaban bijaksana @ yeyo di atas.
Perubahan:
var parameters = parser.search.split(/\?|&/);
Untuk:
var parameters = parser.search.split(/\?|&/);
sumber
Coba ini
sumber
Juga:
Hanya satu liner jawaban Shlomi yang dapat digunakan di bookmarklet
sumber