我正在尋找一種在外部.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開發人員在進一步學習之前應該學習的第一件事情之一。 –