可能重复:
Getting URL of executing JavaScript file (IE6-7 problem mostly)
我的页面有这一行:
<script type="text/javascript" src="pixel.js?name=Test&age=21"></script>
我需要pixel.js来访问vairables名称和年龄,这怎么可能?我尝试使用地址栏变量(获取POST数据)方法,但它出现未定义,因为我想这在技术上不在地址栏...
由于 克雷格
答案 0 :(得分:0)
我认为只要pixel.js是静态文件就不能这样做。如果你想做这样的事情,你必须使用一些服务器处理程序来提供javascript文件和读取查询字符串参数。
答案 1 :(得分:0)
您是否需要将变量从HTML页面传递到JavaScript或者您在做什么?
如果您需要这样做,请查看本教程: http://feather.elektrum.org/book/src.html
我实际上发现了类似的讨论并刷了用户378221的答案: Passing parameters to JavaScript files
我建议您在sperate脚本标记中声明变量,然后包含该文件。
答案 2 :(得分:0)
您只能通过使用您的文件名查找脚本标记,然后解析src
属性来执行此操作......如下所示:
var scripts = document.getElementsByTagName('script'),
scriptTest = /^pixel\.js/,
pixelScript, params,
getScriptParams = function(scriptSrc){
var qSplit = scriptSrc.split('?'),
aSplit = qSplit[1].split('&'),
retVals = {}, pSplit;
for (var i = 0, il = aSplit.length; i < il; i++) {
pSplit = aSplit[i].split('=');
retVals[pSplit[0]] = pSplit.length > 1 ? pSplit[1] : null;
}
return retVals;
};
for (var i = 0, il = scripts.length; i < il; i++) {
if (scriptTest.test(scripts[i].src)) {
pixelScript = scripts[i];
}
}
params = getScriptParams(pixelScript.src);
答案 3 :(得分:0)
免责声明:未经测试
只需在脚本元素上添加一个ID,然后从包含的脚本中获取它(它们存在于同一个DOM上,因此它应该可以工作)
HTML:
<script id="blah" type="text/javascript" src="foo.js?key=value" />
foo.js:
console.log(document.getElementById('blah').src);