2012-04-24 238 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进行交流。