如何在js文件中动态加载另一个js文件?

JavaScript09

如何在js文件中动态加载另一个js文件?,第1张

1、直接document.write\x0d\x0a\x0d\x0adocument.write("")\x0d\x0a\x0d\x0a\x0d\x0a2、动态改变已有script的src属性\x0d\x0a

有三种方法可以实现,分别如下:

第一种、直接document.write:

<script language="javascript">

document.write("<script src='test.js'><\/script>")

</script>

第二种、动态改变已有script的src属性

<script src='' id="s1"></script>

<script language="javascript">

s1.src="test.js"

</script>

第三种、动态创建script元素:

<script>

var oHead = document.getElementsByTagName('HEAD').item(0)

var oScript= document.createElement("script")

oScript.type = "text/javascript"

oScript.src="test.js"

oHead.appendChild( oScript)

</script>

注意:第三种方法使用时,请注意路径。

本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法。分享给大家供大家参考。具体实现方法如下:

/**

*

动态导入静态资源文件js/css

*/

var

$import

=

function(){

return

function(rId,

res,

callback){

if(res

&&

'string'

==

typeof

res){

if(rId){

if($($('#'

+

rId),

$('head')).length>0){

return

}

}

//加载资源文件

var

sType

=

res.substring(res.lastIndexOf('.')

+

1)

//

支持js/css

if(sType

&&

('js'

==

sType

||

'css'

==

sType)){

var

isScript

=

(sType

==

'js')

var

tag

=

isScript

?

'script'

:

'link'

var

head

=

document.getElementsByTagName('head')[0]

//

创建节点

var

linkScript

=

document.createElement(tag)

linkScript.type

=

isScript

?

'text/javascript'

:

'text/css'

linkScript.charset

=

'UTF-8'

if(!isScript){

linkScript.rel

=

'stylesheet'

}

isScript

?

linkScript.src

=

res

:

linkScript.href

=

res

if(callback

&&

'function'

==

typeof

callback){

if

(linkScript.addEventListener){

linkScript.addEventListener('load',

function(){

callback.call()

},

false)

}

else

if

(linkScript.attachEvent)

{

linkScript.attachEvent('onreadystatechange',

function(){

var

target

=

window.event.srcElement

if

(target.readyState

==

'complete')

{

callback.call()

}

})

}

}

head.appendChild(linkScript)

}

}

}

}()

希望本文所述对大家的javascript程序设计有所帮助。