




免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
要实现动态加载JS脚本有4种方法:1、直接document.write document.write(); 2、动态改变已有script的src属性 s1.src=test.js 3、动态创建script元素 var oHead = document.getElementsByTagName(HEAD).item(0); var oScript= document.createElement(script); oScript.type = text/javascript; oScript.src=test.js; oHead.appendChild( oScript); 这三种方法都是异步执行的,也就是说,在加载这些脚本的同时,主页面的脚本继续运行,如果用以上的方法,那下面的代码将得不到预期的效果。要动态加载的JS脚本:a.js,以下是该文件的内容。var str = 中国; alert( 这是a.js中的变量: + str ); 主页面代码: function LoadJS( id, fileUrl ) var scriptTag = document.getElementById( id ); var oHead = document.getElementsByTagName(HEAD).item(0); var oScript= document.createElement(script); if ( scriptTag ) oHead.removeChild( scriptTag ); oScript.id = id; oScript.type = text/javascript; oScript.src=fileUrl ; oHead.appendChild( oScript); LoadJS( a.js ); alert( 主页面动态加载a.js并取其中的变量: + str ); 上述代码执行后 a.js 的 alert 执行并弹出消息,但是 主页面产生了错误,没有弹出对话框。原因是 str 未定义,为什么呢?因为主页面在取 str 的时候 a.js 并没有完全加载成功。遇到需要同步执行脚本的时候,可以用下面的第四种方法。4、原理:用XMLHTTP取得要脚本的内容,再创建 Script 对象。注意:a.js必须用UTF8编码保存,要不会出错。因为服务器与XML使用UTF8编码传送数据。主页面代码: function GetHttpRequest() if ( window.XMLHttpRequest ) / Gecko return new XMLHttpRequest() ; else if ( window.ActiveXObject ) / IE return new ActiveXObject(MsXml2.XmlHttp) ; function AjaxPage(sId, url) var oXmlHttp = GetHttpRequest() ; oXmlHttp.OnReadyStateChange = function() if ( oXmlHttp.readyState = 4 ) if ( oXmlHttp.status = 200 | oXmlHttp.status = 304 ) IncludeJS( sId, url, oXmlHttp.responseText ); else alert( XML request error: + oXmlHttp.statusText + ( + oXmlHttp.status + ) ) ; oXmlHttp.open(GET, url, true); oXmlHttp.send(null); function IncludeJS(sId, fileUrl, source) if ( ( source != null ) & ( !document.getElementById( sId ) ) ) var oHead = document.getElementsByTagName(HEAD).item(0); var oScript = document.createElement( script ); oScript.language = javascript; oScript.type = text/javascript; oScript.id = sId; oScript.defer = true; oScript.text = source; oHead.appendChild( oScript ); AjaxPage( scrA, b.js ); alert( 主页面动态加载JS脚本。); alert( 主页面动态加载a.js并取其中的变量: + str ); 现在完成了一个JS脚本的动态加载。var Rash=true; var msg=; function norash() if (confirm(确定要取消吗) Rash=false; function rashit() setInterval(getrss(),Inttime); function getrss() if (Rash=true) head=document.getElementsByTagName(head).item(0); script=document.createElement(script); script.src=INCLUDE/AutoUpdate.asp; script.type=text/javascript; script.defer=true; voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙教版2023小学信息技术六年级上册1.2《抽象与建模》教学设计及反思
- 2025年中国高纯度紫杉叶素行业市场分析及投资价值评估前景预测报告
- 情境表演 快乐的一天说课稿-2023-2024学年小学音乐一年级上册(2024)人音版(2024 主编:赵季平杜永寿)
- 5.1.6 鸟 说课稿-人教版生物八年级上册
- 2025年中国麸质检测工具行业市场分析及投资价值评估前景预测报告
- 口腔临床知识培训课件
- 口腔业内知识培训内容课件
- 保卫人员业务知识培训课件
- 第4课《生命彼此息息相关》教学设计 -生命生态安全二年级下册 (川教版)
- 第15课 记忆小窍门教学设计小学心理健康苏教版四年级-苏科版
- 氯气的性质课件高一上学期化学人教版
- 水利工程监理部主要工作制度(依据2014版监理规范编写)
- 2025浙江版八年级科学下册知识梳理(详细版)
- 2024年酒吧演艺公司与艺人合同
- 【MOOC】走进舞蹈艺术-首都师范大学 中国大学慕课MOOC答案
- DB43-T 3061-2024 普通级实验用羊的饲养环境及设施规范
- 血浆灌流联合其他治疗方法治疗肿瘤的研究进展
- 信息技术 数字孪生能力成熟度模型
- 述情障碍的社会根源
- 家园2-菲雅利帝国全贸易模式全商品
- 四级词汇熟词僻义表
评论
0/150
提交评论