A-A+
javascript动态加载js脚本几种方法
本文章总结了几种常用的动态加载js脚本的方法,有需要的朋友可参考一下。
javascript动态加载js脚本
1、直接document.write,代码如下:
- <script language="javascript">
- document.write("<script src='test.js'></script>");
- </script>
2、动态改变已有script的src属性,代码如下:
- <script src='' id="s1"></script>
- <script language="javascript">
- s1.src="test.js"
- </script>
3、动态创建script元素,代码如下:
- function require(url, options){
- var head, node, isOpera;
- isOpera = typeof opera !== 'undefined' && opera.toString() === '[object Opera]';
- options.success = options.success || function(){};
- options.error = options.error || function(){};
- options.type = options.type || 'text/javascript';
- options.charset = options.charset || 'utf-8';
- options.async = options.async || true;
- head = document.getElementsByTagName("head")[0];
- node = document.createElement(//javascript/i.test(options.type) ? 'script' : 'style');
- node.type = options.type;
- node.charset = options.charset;
- node.async = options.async;
- node.src = url;
- if (node.attachEvent &&
- !(node.attachEvent.toString && node.attachEvent.toString().indexOf('[native code') < 0) &&
- !isOpera){
- node.attachEvent('onreadystatechange', function(){
- if(!node.readyState || node.readyState == "loaded" || node.readyState == "complete"){
- options.success();
- }
- });
- }else{
- node.addEventListener('load', options.success, false);
- node.addEventListener('error', options.error, false);
- }
- head.appendChild(node);
- }
IE不支持加载失败检测,代码如下:
- require('http://code.jquery.com/jquery-1.7.3.min.js', {
- success:function(){
- alert('jquery loaded!');
- },
- error:function(){
- alert('jquery load fail!');
- }
- });
方法四,代码如下:
- //动态加载脚本文件
- function AddScript(scriptID,scriptSRC)
- {
- if(document.getElementByIdx(scriptID)!=null)
- return;
- var Heads = document.getElementsByTagName_r("HEAD");
- if(Heads.length==0)
- return;
- var oHead = Heads.item(0);
- var oScript= document.createElement("script");
- oScript.id = scriptID;
- oScript.type = "text/javascript";
- //oScript.text = scriptContent;
- oScript.src = scriptSRC;
- oHead.appendChild(oScript);
- }
- //动态加载脚本内容
- function AddScript(scriptID,scriptContent)
- {
- if(document.getElementByIdx(scriptID)!=null)
- return;
- var Heads = document.getElementsByTagName_r("HEAD");
- if(Heads.length==0)
- return;
- var oHead = Heads.item(0);
- var oScript= document.createElement("script");
- oScript.id = scriptID;
- oScript.type = "text/javascript";
- oScript.text = scriptContent;
- oHead.appendChild(oScript);
- }