如何使用onclick处理程序和< script>
标记中包含的javascript代码在IE中嵌入html。
如果我使用 $('#id')。html(data)
在onclick处理程序中嵌入一些html,通常这样可行,并且onclick处理程序会按预期触发。
但是,在IE11中,如果我还在嵌入的数据中包含< script>
标记,则脚本标记中的代码会正确执行,但onclick处理程序不再触发。
实际上,我正在嵌入的代码是从ajax调用返回的,但这是一个演示问题的简化示例:

 
 <!DOCTYPE html>
< html>
 < HEAD>
 < meta http-equiv =“X-UA-Compatible”content =“IE = EDGE”/>
 < script type =“text / javascript”src =“jquery.js”>< / script>
 < script type =“text / javascript”charset =“utf-8”>
 //<![CDATA [
 $(document).ready(function(){
 var data ='< input type =“checkbox”onclick =“console.log(\'clicked \'); return false;”/>'+ 
'< scr'+'ipt> console.log(\'loaded \')< / sc'+'ript>';
 $('#container')。html(data) ;
});
 //]] GT;
 < /脚本>
 < /头>
 <身体GT;
 < div id =“container”>< / div>
 < / body>
< / html>



 加载页面后,您会看到已加载
写入控制台。但是当你点击复选框时,没有记录任何内容。
如果你从数据中删除 script
标签,那么onclick处理程序工作正常。
这适用于Firefox和Chrome中的 script
标记,并且我记得在IE9中可以使用。
 Is这是IE11中的一个错误,jQuery中的一个错误?任何解决方法?
我正在使用jQuery v1.11.3

答案 0 :(得分:1)
问题的原因似乎是“IE增强安全配置”。据我所知,这是一个仅存在于MS Windows服务器版本中的设置。
启用此设置时,上述问题仍然存在。关闭设置会导致问题消失。
您无法在“IE选项”对话框中将其关闭。您必须使用“服务器管理器”应用程序。