可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I am refreshing my page using jQuery:
location.reload();
This is working great but I want to refresh the same page by passing a parameter to URL.
How can I do this by using jQuery?
Ex:
If my url is www.myweb.com
, I want to refresh this by passing a parameter like this
www.myweb.com?single
Thank you
回答1:
You should be able to accomplish this by using location.href
if(window.location.hostname == "www.myweb.com"){
window.location.href = window.location.href + "?single";
}
回答2:
I would use REGEX with .replace
like this:
window.location.href = window.location.href.replace( /[\?#].*|$/, "?single" );
回答3:
You can use Javascript URLSearchParams.
var url = new URL(window.location.href);
url.searchParams.set('single','');
window.location.href = url.href;
回答4:
if window.location.hash
is empty, you cant assign to location.href a new value without using a correct function (at least tested in chrome).
try the window.location.replace
:
if (!window.location.hash)
{
window.location.replace(window.location.href + "?single")
}
回答5:
Concision counts: I prefer window.location = "?single";
or window.location += "?single";
回答6:
You could simply have just done:
var varAppend = "?single";
window.location.href = window.location.href.replace(".com",".com" + varAppend);
Unlike the other answers provided, there is no needless conditional check. If you design your project properly, you'll let the interface make the decision making and calling that statement whenever an event has been triggered.
Since there will only be one ".com" in your url, it will just replace .com
with .com?single
. I just added varAppend
just in case you want to make it easier to modify the code in the future with different kinds of url variables.
One other note:
The .replace
works by adding to the href since href returns a string containing the full url address information.
回答7:
Click these links to see these more flexible and robust solutions. They're answers to a similar question:
- With jQuery and the query plug-in:
window.location.search = jQuery.query.set('single', true);
- Without jQuery: Use
parse
and stringify
on window.location.search
These allow you to programmatically set the parameter, and, unlike the other hacks suggested for this question, won't break for URLs that already have a parameter, or if something else isn't quite what you thought might happen.
回答8:
var singleText = "single";
var s = window.location.search;
if (s.indexOf(singleText) == -1) {
window.location.href += (s.substring(0,1) == "?") ? "&" : "?" + singleText;
}
回答9:
I'm using Jquery Load to handels this, works great for me.
check out my code from my project. I need to refresh with arguments to put Javascript variable into 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;
}