好的,我加载页面时会解析以下HTML代码:
<div id="clip-wrapper">
<script type="text/javascript">
alert("bla");
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
这显然导致一个警告说"bla",在我的AJAX调用之后,解析的HTML代码如下所示:
<div id="clip-wrapper">
<script type="text/javascript">
alert("ajaxbla");
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
另一方面,这不会导致警报.为什么?我该如何解决这个问题?
如果从Ajax调用中将任何脚本加载到您的dom中,则出于安全原因不会执行它们.
要使脚本执行,您需要将其从响应中删除,然后运行它 eval
但理想情况下,您需要将脚本作为ajax请求完成时的回调运行.如果您正在使用jQuery,那么这将是您的ajax调用的成功事件,如果您在本地执行它,那么它将是您的xhr对象的readyStateChange事件.
编辑
如果你真的想选择eval选项,你可以试试这样的:
document.getElementById(contentDiv).innerHTML = xmlHttp.responseText;
eval(document.getElementById("clip-wrapper").innerHTML);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14368 次 |
| 最近记录: |