javascript - 使用内部脚本设置innerHTML

标签 javascript firebug innerhtml

如果我在任何页面上的 Firebug 中运行以下行:

document.documentElement.innerHTML="<script>alert(1)</script>";

为什么不是 alert命令执行了吗?

最佳答案

看起来你的<script>标签正在按照您的预期添加,但其中的代码没有被执行。如果您尝试使用document.head,也会发生同样的失败。 (或者任何其他 DOM 元素,看起来)。无论出于何种原因(可能是标准合规性、可能是安全性), <script> 内的内联代码通过 .innerHTML 添加的 block 根本不运行。

但是,我确实有可以产生类似功能的工作代码:

var script = document.createElement('script');
script[(script.innerText===undefined?"textContent":"innerText")] = 'alert(1);';
document.documentElement.appendChild(script);

在这里,您添加 <script>阻止 documentElement.appendChild并使用textContentinnerText设置 <script> 的内容.

关于javascript - 使用内部脚本设置innerHTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31287119/

相关文章:

javascript - 如何去掉小数点后第三位以下的所有数字?

javascript - Phonegap/Cordova 推送通知不唤醒屏幕

jquery - Firebug - 动态加载的调试脚本

firefox - 如何在 iFrame 中运行 Firefox 检查器?

javascript - 无法使用 for 循环将 "print"与 .innerHTML 一起使用

javascript - 动态添加输入元素时,innerHTML 不显示

javascript - bootstrap3 - hide.bs.dropdown 函数无论 .click 定义如何都会触发? ..用 fiddle

javascript - ng-view 和 ng-animate 一起执行指令两次

css - 绕过 Chrome 或 Firefox 中的缓存

javascript - 如何使用 JavaScript 删除最后一个 div