Ответ 1
Вы должны выполнить это, используя location.href
if(window.location.hostname == "www.myweb.com"){
window.location.href = window.location.href + "?single";
}
Я обновляю свою страницу с помощью jQuery:
location.reload();
Это отлично работает, но я хочу обновить одну и ту же страницу, передав параметр URL.
Как это сделать, используя jQuery?
Пример:
Если мой url www.myweb.com
, я хочу обновить его, передав параметр, подобный этому
www.myweb.com?single
Спасибо
Вы должны выполнить это, используя location.href
if(window.location.hostname == "www.myweb.com"){
window.location.href = window.location.href + "?single";
}
Я бы использовал REGEX с .replace
следующим образом:
window.location.href = window.location.href.replace( /[\?#].*|$/, "?single" );
если window.location.hash
пуст, вы не можете назначить location.href новое значение без использования правильной функции (по крайней мере, проверено на хроме).
попробуйте window.location.replace
:
if (!window.location.hash)
{
window.location.replace(window.location.href + "?single")
}
Объяснение: я предпочитаю window.location = "?single";
или window.location += "?single";
Вы могли просто сделать:
var varAppend = "?single";
window.location.href = window.location.href.replace(".com",".com" + varAppend);
В отличие от других предоставленных ответов, нет никакой ненужной условной проверки. Если вы правильно проектируете проект, вы позволяете интерфейсу принимать решения и вызывать этот оператор всякий раз, когда событие было инициировано.
Поскольку в вашем URL будет только один ".com", он просто заменит .com
на .com?single
. Я просто добавил varAppend
на случай, если вы захотите изменить код в будущем с помощью разных типов URL-адресов.
Еще одно примечание:
.replace
работает, добавляя в href, поскольку href возвращает строку, содержащую полную информацию о адресе URL.
var singleText = "single";
var s = window.location.search;
if (s.indexOf(singleText) == -1) {
window.location.href += (s.substring(0,1) == "?") ? "&" : "?" + singleText;
}
Нажмите эти ссылки, чтобы увидеть эти более гибкие и надежные решения. Они отвечают на аналогичный вопрос:
window.location.search = jQuery.query.set('single', true);
parse
и stringify
в window.location.search
Это позволяет вам программно устанавливать параметр и, в отличие от других хаков, предлагаемых для этого вопроса, не будет ломаться для URL-адресов, у которых уже есть параметр, или если что-то еще не совсем то, что вы считали возможным.
Я использую Jquery Load для этого, отлично работает для меня. проверьте мой код из моего проекта. Мне нужно обновить с помощью аргументов, чтобы поместить переменную Javascript в php
if (isset($_GET['language'])){
$language = $_GET['language'];
}else{
echo '<script>';
echo ' var userLang = navigator.language || navigator.userLanguage;';
echo ' if(userLang.search("zh") != -1) {';
echo ' var language = "chn";';
echo ' }else{';
echo ' var language = "eng";';
echo ' }';
echo '$("html").load("index.php","language=" + language);';
echo '</script>';
die;
}