html自动执行脚本,我要在innerHTML中执行script脚本

innerHTML执行js代码,向innerHTML中写入并执行script脚本并让他运行起来,通常网站用到innerHTML加载的js脚本网站script没有运行,要想让他远行的方法有2种。

innerHTML中没有执行script脚本的原因分析:

< script>标签只在浏览器第一次文档加载中被解析,要不就要不就要有事件去触发以前页面加载过的js函数或是方法。

script脚本在innerHTML中显示了没有运行的原因分析了下面介绍2种方法去解决

1、dom动态创建一个script对象var script=document.createElement("script");

script.src="XXXX.js"; //这里是引入的一个外部js文件 当然也可以直接写js代码在这

// alert('script脚本运行没有呢?');

document.body.appendChild(script);

2、如页面加载完要想页面在执行刚innerHTML的js代码,我们可以把这个js代码放到一个子窗口中让他运行,在用js删除iframe具体如下。var jsCode = 需要执行的JS代码

var jsIframe = document.createElement("iframe");

jsIframe.style.display = "none";//把jsIframe隐藏起来

document.body.appendChild(jsIframe);

with(window.frames[window.frames.length - 1]){

document.open();

document.write(jsCode); //执行JS代码

document.close();

}

document.body.removeChild(jsIframe);//执行后删除iframe对象

这里需要注意一个问题,因为jsCode是在iframe中运行,所以所有的页面元素都在iframe父对象之下,要调用页面元素对象必须得用 parent.obj 这种方式。

除了上面的2种方法还有一种是

有人说这种可以,但实际上好像不得行,大家可以试一下,就是在script 标签后加一个 defer 属性来对脚本执行进行延迟,直到页面加载为止。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值