如果我在任何页面上的 Firebug 中运行以下行:
document.documentElement.innerHTML="<script>alert(1)</script>";
为什么不是alert
命令执行?
看起来你的<script>
tag is按您的预期添加,但其中的代码没有被执行。如果您尝试使用,也会发生同样的失败document.head
(or any似乎是其他 DOM 元素)。无论出于何种原因(可能是标准合规性,可能是安全性),内联代码<script>
通过添加的块.innerHTML
根本不运行。
但是,我确实有可以产生类似功能的工作代码:
var script = document.createElement('script');
script[(script.innerText===undefined?"textContent":"innerText")] = 'alert(1);';
document.documentElement.appendChild(script);
在这里,您添加<script>
块与documentElement.appendChild
并使用textContent
or innerText
设置内容<script>
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)