我正在寻找一种在外部.js文件中发布变量的方法。将变量添加到.js文件
喜欢的东西:
<script type="text/javascript" src="/js/script-starter.js?var=value"></script>
然后我想打电话VAR(因而,值)。这有可能以任何方式?
谢谢!
我正在寻找一种在外部.js文件中发布变量的方法。将变量添加到.js文件
喜欢的东西:
<script type="text/javascript" src="/js/script-starter.js?var=value"></script>
然后我想打电话VAR(因而,值)。这有可能以任何方式?
谢谢!
是的,这是可能的。您将必须使用document.getElementsByTagName函数在DOM中查找所有script
标记(确保DOM已加载,然后再尝试查看它),循环遍历结果列表,查找相应的脚本并解析src
属性以便提取你正在寻找的价值。
东西线沿线的:
var scripts = document.getElementsByTagName('script');
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].src;
// Now that you know the src you could test whether this is the script
// that you are looking for (i.e. does it contain the script-starter.js string)
// and if it does parse it.
}
至于src
属性的分析而言,并提取其查询字符串值,您可以使用following function。
如果脚本是接收查询字符串变量中的服务器端脚本,并返回一个JavaScript代码作为输出,便有可能
如何脚本文件加载之前声明变量:
<script type="text/javascript">var myVar = "Value"</script>
<script type="text/javascript" src="/js/script-starter.js"></script>
所以你可以在脚本中使用这个变量。可能这是最简单的方法之一。
你为什么不把这些变量中隐藏一个或P
<a id="myHiddenVar" style="display:none;">variables</a>
然后在你的.js你
var obj = document.getElementById("myHiddenVar").innerHTML;
或jQuery的风格访问
var obj = $("#myHiddenVar").text();
function getJSPassedVars(script_name, varName) {
var scripts = $('script'),
res = null;
$.each(scripts, function() {
var src = this.src;
if(src.indexOf(script_name) >= 0) {
varName = varName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
var string = new RegExp("[\\?&]"+ varName +"=([^&#]*)"),
args = string.exec(src);
if(!args.length) {
res = null;
} else {
res = args[1];
}
}
});
return res;
}
console.log(getJSPassedVars('script-starter.js', 'var'));
在我的情况下我的应用程序的文件夹结构是像以下:
MyApp/
index.html
jquery.js
my.js
上述功能是内my.js
与console.log
和包括它内index.html
。
哇,+1。我正想说这是不可能的。 –
@Darin Dimitrov - >好吧,我认为你误以为一个初学JavaScript程序员的基本问题是关于一些复杂的东西。我想他只是问,“如果他有一个函数foo(x,y)在JS文件fooFile.js中定义,那么他如何在他的代码中调用foo(5,7)。”所以 - >这是一个非常基本的问题,VisioN给出了一个基本的正确答案。 –
@SarveshKumarSingh,我没有看到任何复杂的答案。这是非常基本的JavaScript和DOM操作。这是任何JavaScript开发人员在进一步学习之前应该学习的第一件事情之一。 –