如何在html和JS中包含Javascript JS文件终极解决方案

JavaScript016

如何在html和JS中包含Javascript JS文件终极解决方案,第1张

现在常用的一种javascript的方法是在当前的html文档中插入一个script标签,在标签中引入script脚本Js代码var__includes__=newArrayArray.prototype.indexOf=function(obj){for(vari=0i<this.lengthi++){if(this[i]==obj)returni}return-1}Array.prototype.add=function(obj){this[this.length]=obj}functioninclude_js(js){if(__includes__.indexOf(js)-1)return__includes__.add(js)varhead=document.getElementsByTagName('head')[0]script=document.createElement('script')script.src=jsscript.type='text/javascript'head.appendChild(script)}当你只是在你的htmlw文档中使用这个方法的时候,一切OK,这其实是script的标签的一种快捷的写法而已。但是,如果你在一个javascript使用这个方法,问题就来了,比如我在test.js中使用include_js("test1.js"),在test1.js中有一个变量test1是在test.js中要使用的,在webkit中尽然出现了test1变量未定义的错误,我不知道ie和firefox是否有这种问题,我想可能是include_js本身不是同步执行导致的,所以我只好使用以下方法来完善inlcude_jsJs代码var__includes__=newArrayArray.prototype.indexOf=function(obj){for(vari=0i<this.lengthi++){if(this[i]==obj)returni}return-1}Array.prototype.add=function(obj){this[this.length]=obj}functionxhttp(url,callback){varrequest=nullif(typeofXMLHttpRequest!='undefined'){request=newXMLHttpRequest()}elseif(typeofActiveXObject!='undefined'){request=newActiveXObject('Microsoft.XMLHTTP')}request.open('GET',url,true)request.onreadystatechange=function(){if(request.readyState==4){callback(request.responseText)}}request.send(null)}functionadd_scripts(jss,callback){varfunc=function(jss,idx,callback){if(idx==jss.length){callback()return}add_script(jss[idx],function(){func(jss,++idx,callback)})}func(jss,0,callback)}functionadd_script(js,callback){if(__includes__.indexOf(js)-1){callback()return}__includes__.add(js)xhttp(js,function(js_content){varhead=document.getElementsByTagName('head')[0]script=document.createElement('script')head.appendChild(script)// script.innerHTML=js_content//原帖是这个...本人测试这行..无效 必须用text属性赋值script.defer=truescript.type='text/javascript'script.language='javascript'//本人测试修正..添加script.text=js_content//本人测试修正..添加//zfrong 09.5.20callback()})}functioninclude_js(js){if(__includes__.indexOf(js)-1)return__includes__.add(js)varhead=document.getElementsByTagName('head')[0]script=document.createElement('script')script.src=jsscript.type='text/javascript'head.appendChild(script)}当我在html文档中引入的时候,我用 include_js,当我在js文件中引入js时候,我使用add_scripts,add_scriptJs代码add_scripts(['test1.js','test2.js']),add_scripts方法使用了xmlhttp来读入js内容,并把读入的内容的写到一个新的script标签内,读入是异步执行的,当执行完毕后,会调用callback、

问题在test1.htm文件中定义的ok()函数中,你应该将该函数修改成如下:

function ok()

{

document.getElementById("load").innerHTML=parent.left.document.form1.c.value

}

看到了吗,innerHTML是一个属性而不是一个方法,所以你应该为innerHTML赋值,而不是把它当方法来调用。

另外,你不应该将传过来的值放到table中的<td>标记符中,所以test1.htm中的

<td id="load">把左边输入的代码加载到这里</td>

也应该修改为如下语句:

<td><div id="load">把左边输入的代码加载到这里</div></td>

即可实现你需要的功能。

<script language="javascript">

document.write("aaaaaaaaaa")

document.close()

</script>

是test。js的话 就不要写

<script language="javascript">

</script>

应该是test.js文件里面直接写上

document.write("aaaaaaaaaa")

document.close()