2012-04-24 114 views
0

我所說的.js文件動態調用.js文件這樣無法從某些HTML頁面,從我的HTML頁面某些瀏覽器

var value1 = "Hello"; 
var value2 = "John"; 

var oHead1 = document.getElementsByTagName('HEAD').item(0); 
var paramScript = document.createElement("script"); 

paramScript.type = "text/javascript"; 

     paramScript.setAttribute('value1', 
       value1); 
     paramScript.setAttribute('value2', 
       value2); 

oHead1.appendChild(paramScript); 

var oHead = document.getElementsByTagName('HEAD').item(0); 
var oScript = document.createElement("script"); 
oScript.type = "text/javascript"; 
oScript.src = "some.js"; 
oHead.appendChild(oScript); 

這在Android和iPhone瀏覽器效果很好。但它在Blackberry OS 5.0瀏覽器中不起作用

是否有替代方案可以在所有瀏覽器中使用?

回答

1

而不是設置與設定的變量屬性的空腳本標籤,它將使更多的意義只是使用設定在腳本開頭的變量...

var value1 = "Hello"; 
var value2 = "John"; 

這不僅會降低你會產生多少DOM操作,但也應該簡化你在some.js中檢索變量的方式。

我可以提供的另一個建議是將自己的JS包裝在一個自我調用函數中。

(function(){ 
    // Code Here 
}()); 
+0

在我的HTML我有一個變量作爲「值1」,我需要將其轉移到some.js文件,所以我用paramScript.setAttribute ...這是錯誤的嗎? – 2012-04-24 15:21:17

+0

我不會說這在理論上是錯誤的。但是,我會使用HTML5數據屬性(data-value1 =「Hello」)來使其成爲標準投訴。什麼是您使用的HTML? – honyovk 2012-04-24 15:28:10

+0

我正在使用支持HTML5的phonegap,但BB OS 5.0使用較低版本的HTML ...那麼我該怎麼辦? – 2012-04-24 15:40:35

0

您應該使用庫裝載器,如LABFrame。有很多瀏覽器腳本加載的特性,並且這些庫看起來都能解決這些問題,但我無法專門與Blackberry OS 5.0進行交流。