我的页面http://www.dinomuhic.com/2010/index.php在正文中使用 onLoad 调用在页面开头加载 Showreel,如下所示:
<body onLoad="sndReq('96')">
96 是 SQL 库中 showreel 的 ID。 JS 函数“sndReq”是一个使用 JQuery 的 AJAX 调用,它打开请求的项目并将其显示在主窗口中。
现在我的问题是:如果我想将链接发送给直接打开特定项目的客户,这样他就不必浏览网站怎么办?
类似于 http://www.dinomuhic.com/2010/index.php?sndReq=234 (这当然现在不起作用,只是打开 showreel,可能是因为 body 标签中的 onLoad 覆盖了它)
我该如何实现?我希望能够通过 URL 打开特定项目,但如果没有通过 URL 传递任何内容,它应该始终打开项目 96。
提前致谢。我敢肯定这很简单,只是我看不到。
克莱图斯
最佳答案
您需要解析查询字符串。我发现处理查询字符串的最简单方法是执行以下操作。首先,您需要从 URL 中提取查询字符串:
var queryStr = window.location.search; // will give you ?sndReq=234
然后,您可以去掉 ?
并将每个查询字符串参数拆分为一个数组:
var paramPairs = queryStr.substr(1).split('&');
现在您可以构建构成查询字符串的名称/值对的哈希表对象:
var params = {};
for (var i = 0; i < paramPairs.length; i++) {
var parts = paramPairs[i].split('=');
params[parts[0]] = parts[1];
}
在您的onload
中,您现在可以这样使用参数:
sndReq(params.sndReq);
确保代码在文档的 head
中的脚本中运行,以便在执行 onload
之前对其进行计算。
关于javascript - 在窗口加载时通过 URL 将值传递给 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7770887/