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

标签 javascript url variables get onload

我的页面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/

相关文章:

javascript - 防止 Javascript 页面重新加载

javascript - 使 float 图像具有相同的边距

node.js - Node 请求抛出 : Error: Invalid URI "www.urlworksinbrowser.com" or options. uri 是必需的参数

mysql - 使用 MySQL 中的用户定义变量从前一行获取值

javascript - 创建动态号码回调函数

javascript - 使用闭包对数字求和

asp.net-mvc - 使用 MVC 防止 URL 操作攻击?

java - 从给定的 url 中提取主域名

const 文本变量声明 C

PHP:处理 MySQL 连接变量