我有这个脚本代码:
<script src="http://example.com/embed.js?q=123¶meter1=450¶meter2=300"></script>
如何获取q(123)和parameter1(450)以及parameter2(300)的值并将它们用于embed.js文件?我想通过使用这些值为我的embed.js创建条件。我怎样才能实现这一目标?
答案 0 :(得分:1)
像这样给出脚本元素和ID属性:
<script id="embed-script" src="http://example.com/embed.js?q=123¶meter1=450¶meter2=300"></script>
Javascript:
var url = document.getElementById('embed-script');
function parseGet(val) {
var result = "",
tmp = [];
var items = url.src.split("?")[1].split('&');
for (var index = 0; index < items.length; index++) {
tmp = items[index].split("=");
if (tmp[0] === val)
result = decodeURIComponent(tmp[1]);
}
return result;
}
在embed.js中获取这样的值:
var value1 = parseGet(&#39; q&#39;);
然后value1应为&#34; 123&#34;。
答案 1 :(得分:0)
我认为你不能,但你可以在需要你的js文件之前声明所有param:
<script type="text/javascript">
var q = 123;
var parameter1 = 450;
var parameter2 = 300;
</script>
<script src="http://example.com/embed.js"></script>
答案 2 :(得分:0)
您可以将参数放在<script>
标记的属性中。
<script src="http://example.com/embed.js" q="123" parameter1="450" parameter2="300"></script>
您可以使用
在embed.js
中访问这些参数
document.currentScript.getAttribute('q');
document.currentScript.getAttribute('parameter1');
document.currentScript.getAttribute('parameter2');
注意:document.currentScript
不适用于IE。
了解更多信息check this out。
答案 3 :(得分:0)
如果在不等待文档加载的情况下请求script
标记作为最后一个脚本标记,则可以访问它。
~function() {
var s = document.querySelectorAll("script");
s = s[s.length-1];
console.log(s.src);
}();