bounty 8小时后到期。此问题的答案有资格获得+50声望奖励。Đinh Carabus希望引起更多的注意这个问题。
我注意到,当我使用jQuery的.html('...')
方法插入包含外部<script src="..."></script>
标记的标记时,jQuery并没有直接将script标记插入DOM。相反,它首先检索脚本的内容,然后生成一个包含原始内容的新inline<script>
标记。
换句话说,如果插入的HTML包含:
<script src="xyz.js"></script>
jQuery将其转换为:
<script> ... contents of xyz.js ... </script>
但是,由于我的内容安全策略(CSP)禁止内联脚本标记,浏览器现在拒绝执行此脚本。我理解jQuery必须解析脚本标记,因为通过.innerHTML设置HTML不会执行标记中包含的脚本。但是为什么外部脚本会转换为内联脚本呢?有没有办法在这里配置jQuery的行为,或者我必须自己重写.html()
?
2条答案
按热度按时间jyztefdp1#
前几天也有同样的问题
我是这样做的;
变量数据包含纯字符串形式的html。
变量容器是我想要追加的主体(jQuery El)
2jcobegt2#
像这样的东西应该工作。我们可以只使用
.appendTo()
,而不是使用.html()
。https://codepen.io/Terrafire123/pen/mdaKpJG?editors=1010