分析以下代码:
<html>
<head>
</head>
<body>
<div id="d1"></div>
<div id="d2"></div>
<script>
var a1 = "<div>a1</div><script>alert('a1');<\/script>";
var a2 = "<script>alert('a2');<\/script>"
document.getElementById("d1").innerHTML = a1;
document.getElementById("d2").innerHTML = a2;
</script>
</body>
</html>
上面代码中分别往【d1】和【d2】中通过 innerHTML 插入了一段 HTML 代码,且均包含有 SCRIPT 标签。区别为【d1】中插入的 HTML 代码比【d2】中在最开始多了一个 DIV 元素。
在 IE 中只弹出了 "a1" 提示框,即只有字符串 "a1" 中的脚本执行。这是 IE 的一个 Bug,所以通常为了使 innerHTML 插入的脚本能够在 IE 中正常执行,经常会在欲插入的 HTML 代码字符串的最开始增加一个不可见的元素。如:
<span style="display:none;">span</span><script>alert('a1');<\/script>
参考:http://www.w3help.org/zh-cn/causes/BX9029
分享到:
相关推荐
NULL 博文链接:https://wuzhengxuan.iteye.com/blog/1263906
但不幸的是,Moziila/Firefox 和 Opera 可不吃这一套,不管 script 标签有没有设置 defer 属性,这些浏览器都不会向 IE 那样去执行插入到 innerHTML 中的脚本。 但不管脚本是否被执行了,有一点我们可以肯定,那就是...
IE6-IE9中tbody的innerHTML不能赋值,重现代码如下 Js代码 <!DOCTYPE html> <html> <head> <meta charset=utf-8/> <title>IE6-IE9中tbody的innerHTML不能复制bug</title> </...
解决ajax返回innerHTML中javascript不能运行问题
既然只在文档加载中才被解析,那么我就得调用[removed]()方法来重新加载一次,但是这样的话原来页面的内容也会被覆盖掉了,所以不得不用IFRAME把[removed]()装载起来。 解决问题 var jsCode = 需要执行的JS代码 ...
最近发现各大类库都能利用xxx[removed]=HTML片断来生成节点元素,再把它们插入到目标元素的各个位置上。这东西实际上就是insertAdjacentHTML,但是IE可恶的innerHTML把这优势变成劣势。
仅IE6/7/8中innerHTML返回值忽略英文空格的问题,需要此问题的朋友可以参考下。
让插入到 innerHTML 中的 script 跑起来的代码
首先时飘忽不定的collapse的border,ie6偏偏...排查了半天,结果是IE的table元素为只读,不能使用innerHTML!!!! 同样为只读的元素还有COL, COLGROUP, FRAMESET, HTML, STYLE, TABLE, TBODY, TFOOT, THEAD, TITLE, T
IE6/7/8/9中Table/Select的innerHTML不能赋值的解决方法,需要的朋友可以参考下。
js中innerHTML与innerText的用法与区别
所以一直没有遇到这个问题,但是每个人写代码风格不同,有的人就喜欢写字符串形式的标签并用innerHTML插入,这不就有问题了,为了方便不同编码风格的人,我封装了一个方法,用于解决ie的这个bug和兼容5大浏览器,...
python的xpath没有获取div标签内html内容的功能,也就是获取div或a标签中的innerhtml,写了个小程序实现一下: 源代码 [webadmin@centos7 csdnd4q] #162> vim /mywork/python/csdnd4q/z040.py #去掉最外层标签,...
innerHTML属性在原生javascript中被用于在一个标签内部加入HTML代码,但是这个方法也不是在所有情况下适用, 就比如在IE下面。 看如下代码: 复制代码代码如下: ’22’> </tbody> 我们现在想通过innerHTML属性给...
在用innerHTML生成结构时,为了看起来...innerHTML中标签可以换行的方法</title> </head> <body> [removed] //function fnNew(){ var sHtml = ''; for(var i = 0; i < 2 xss=removed class=in>\
NULL 博文链接:https://snandy.iteye.com/blog/787186
本文实例讲述了js插件设置innerHTML时在IE8下提示“未知运行时错误”解决方法。分享给大家供大家参考。具体分析如下: 问题描述: 网站中使用了一个js插件,设置innerHTML时,在IE8下报错“未知运行时错误”: ...