当我获得带有window.location的URL时,JavaScript执行停止
JavaScript execution stops when I get the URL with window.location
作为练习的一部分,我正在构建一个在线商店,当我试图访问当前URL的参数时遇到了问题。我的JavaScript代码是:
var link = getQueryVariable("q");
var minPrice = 0;
var maxPrice = 500;
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){
return pair[1];
}
}
return(false);
}
function setPrices(callback){
$.get("getPriceBounds.php?q=" + link, function(data){
var results = JSON.parse(data);
minPrice = results["min"];
maxPrice = results["max"];
callback();
},"text/javascript");
}
我是以错误的方式使用window.location,还是有其他方法可以在不停止执行的情况下访问URL?
感谢
function getParameterByName(name) {
name = name.replace(/['[]/, "''[").replace(/[']]/, "'']");
var regex = new RegExp("[''?&]" + name + "=([^&#]*)"),
results = regex.exec(location.search);
return results === null ? "" : decodeURIComponent(results[1].replace(/'+/g, " "));
}
请改用此选项。如果您在页面上http://example.org/index.html?q=300并执行:
var q = getParameterByName("q");
console.log(q);
然后300将打印在您的控制台中。
使用window.location.search应该可以很好地工作。
您可以尝试以下方法来获取查询参数,以防代码出现问题。
var q = 'myParam';
var getParams = function(url) {
return (window.location.search || url).slice(1).split('&')
.reduce(function(a, b) {
b = b.split('=');
a[b[0]] = b[1];
return a;
}, {});
}
getParams(); //{}
getParams('?test=7&more=test'); //{test:7, more:'test'}
注意:上面的代码不会在嵌入式snippet runner中运行,因为它没有窗口对象。
相关文章:
- Decode URL Javascript/JQuery
- 阅读重写URL-javascript
- 出现在Twitter帖子中的页面URL - Javascript
- 从图像URL javascript html保存图像文件
- WebView加载URL(“javascript:XYZ”)在我的网络视图中执行了好几次
- 如何将javascript添加到url javascript中
- 获取请求的页面url javascript
- 通过网络浏览器从 URL javascript 读取文件
- window.location.url Javascript
- 以字符串形式返回 HTML 内容,给定 URL.Javascript 函数
- 在页面加载时将变量附加到 URL |JavaScript
- 来自 url javascript 的 Prase 查询字符串
- 从url javascript中提取部件
- 在给定URL Javascript/Jquery函数的情况下,以字符串形式返回HTML内容
- 正则表达式匹配特定的URL JavaScript
- 干净的方式给MVC url javascript库
- 如果数据包含URL, Javascript将无法解析JSON
- XMLHTTP从变量而不是url - javascript
- 在URL javascript中传递时间值出错
- 包括外部URL javascript文件