登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

... ...

 
 
 

日志

 
 

让innerHTML中的script脚本执行起来  

2008-07-14 22:43:08|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
<P>在我们使用AJAX的时候,经常要用到innetHTML来更新对象的内容,但是对于更新的<script>脚本程序浏览器却无法执行,我前面AJAX初学常遇问题解答这篇文章曾提到过这个问题,它不执行的原因是:<script>标签只在浏览器第一次文档加载中被解析,下面介绍怎么样让<script>跑起来。</P>



<P>分析问题<BR>既然<script>只在文档加载中才被解析,那么我就得调用document.write()方法来重新加载一次,但是这样的话原来页面的内容也会被覆盖掉了,所以不得不用IFRAME把document.write()装载起来。</P>



<P>解决问题<BR> var jsCode = 需要执行的JS代码<BR> var jsIframe = document.createElement("iframe");<BR> jsIframe.style.display = "none";//把jsIframe隐藏起来<BR> document.body.appendChild(jsIframe);<BR> with(window.frames[window.frames.length - 1]){<BR>  document.open();<BR>  document.write(jsCode); //执行JS代码<BR>  document.close();<BR> }<BR> document.body.removeChild(jsIframe);//执行后删除iframe对象<BR>这里需要注意一个问题,因为jsCode是在iframe中运行,所以所有的页面元素都在iframe父对象之下,要调用页面元素对象必须得用 parent.obj 这种方式。</P>



<P>另外一种方法:</P>



<P>用dom动态创建一个script对象<BR>var script=document.createElement("script");<BR>script.src="XXXX.js";<BR>document.body.appendChild(script); </P>
  评论这张
 
阅读(721)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018