在窗口加载时通过URL将值传递给JS函数

Cle*_*tus 3 javascript variables url get onload

我的页面http://www.dinomuhic.com/2010/index.php在页面开头使用onLoad调用加载Showreel,如下所示:

<body onLoad="sndReq('96')">
Run Code Online (Sandbox Code Playgroud)

96是SQL库中showreel的ID.JS函数"sndReq"是一个使用JQuery的AJAX调用,它打开所请求的项目并在主窗口中显示它.

现在我的问题是:如果我想直接打开特定项目的客户端发送链接,以便他不必浏览网站,该怎么办?

http://www.dinomuhic.com/2010/index.php?sndReq=234这样的东西(这当然不起作用,只是打开showreel,可能是因为body标签中的onLoad会覆盖它)

我该如何实现呢?我希望能够通过URL打开特定项目,但如果没有通过URL传递任何内容,则应始终打开项目96.

先感谢您.我很确定它很容易我看不到它.

克莱图斯

Jac*_*cob 5

您需要解析查询字符串.我发现处理查询字符串的最简单方法是执行以下操作.首先,您需要从URL中提取查询字符串:

var queryStr = window.location.search; // will give you ?sndReq=234
Run Code Online (Sandbox Code Playgroud)

然后,您可以删除?并将每个查询字符串参数拆分为一个数组:

var paramPairs = queryStr.substr(1).split('&');
Run Code Online (Sandbox Code Playgroud)

现在,您可以构建构成查询字符串的名称/值对的哈希表对象:

var params = {};
for (var i = 0; i < paramPairs.length; i++) {
    var parts = paramPairs[i].split('=');
    params[parts[0]] = parts[1];
}
Run Code Online (Sandbox Code Playgroud)

在你的onload,你现在可以使用这个参数:

sndReq(params.sndReq);
Run Code Online (Sandbox Code Playgroud)

确保代码在head文档的脚本中运行,以便在onload执行之前计算.