在mytest.html中我包含了这个:
<html><head>
<script type="text/javascript" src="/myjavascript.js?foo=bar"></script>
</head>
<body>Hi</body>
</html>
在myjavascript.js
中alert(this.location.search);
这显示了查询字符串mytest.html,但我想要javascript本身的查询字符串“foo = bar”或只是“bar”。
关于如何做到这一点的任何想法都会很棒。 (我想也许我需要读取脚本元素的html并解析该文本。但我希望这是一种更简单的方法。)
如果有一个简单的方法,我也可以使用JQuery来做到这一点。
答案 0 :(得分:1)
当脚本运行时,它是页面上加载的最后一件事。特别是,这也使它成为当前时间的最后一个脚本元素。
所以,考虑到这一点,试试这个:
var scripts = document.getElementsByTagName('script'),
lastscriptsrc = scripts[scripts.length-1].getAttribute("src"),
search = lastscriptsrc.substr(lastscriptsrc.indexOf("?"));
编辑:你也可以单行,但它的可读性较差:
var search = [].pop.apply(document.getElementsByTagName('script')).getAttribute("src").replace(/.*\?/,"");
答案 1 :(得分:0)
我接受了Kolink的回答。正如评论所指出的那样,我并非百分之百地确信它将是最后一个剧本(似乎有效)。所以下面更明确的是哪个脚本src。
以下是我使用Kolink回答的JQuery答案来帮助我:
var scriptsrc = $("script[src*='myjavascript']").attr("src");
var search = scriptsrc.substr(scriptsrc.indexOf("?"));
alert("search:" + search);
非常感谢您的帮助。
答案 2 :(得分:0)
试试这个
var qrStr = window.location.search;
var spQrStr = qrStr.substring(1);
var arr = new Array();
arr = spQrStr.split('&');
for (var i=0;i<arr.length;i++)
{
var queryvalue = arr[i].split('=');
alert("Name: "+queryvalue[0]+" Value: "+queryvalue[1]);
}