Javascript jQuery使用脚本附加html
我需要一些关于jQuery的帮助 当我试图通过$.get获取带有embded js页面内容的html时,效果很好。但当我试图将其附加到某个div时,所有脚本都将被删除 在控制台中,当我做这样的事情时,它看起来很好Javascript jQuery使用脚本附加html,javascript,jquery,html,Javascript,Jquery,Html,我需要一些关于jQuery的帮助 当我试图通过$.get获取带有embded js页面内容的html时,效果很好。但当我试图将其附加到某个div时,所有脚本都将被删除 在控制台中,当我做这样的事情时,它看起来很好 $('.my_div').html() + '<script>alert("text")</script>' $('.my_div').html()+'警报(“文本”)' 但是当我做的时候 $('.my_div').html($('.my_div').ht
$('.my_div').html() + '<script>alert("text")</script>'
$('.my_div').html()+'警报(“文本”)'
但是当我做的时候
$('.my_div').html($('.my_div').html() + '<script>alert("text")</script>')
$('.my_div').html($('.my_div').html()+'警报(“文本”))
脚本正在运行并正在删除
如何在不运行和删除的情况下将html+js代码附加到div
谢谢
UPD:
我的例子是:
index.html
正文
警报(“示例”)
正文
警报(“示例”)
正文
警报(“示例”)
$.get('get_news.php',函数(响应){
$('.massey')。追加(响应);
});
get_news.php
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
正文
警报(“示例1”)
正文
警报(“示例1”)
正文
警报(“示例1”)
我要去
<div class="masonry">
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
</div>
正文
警报(“示例”)
正文
警报(“示例”)
正文
警报(“示例”)
正文
警报(“示例1”)
正文
警报(“示例1”)
正文
警报(“示例1”)
如何操作?如果不想删除原始内容,可以使用append。至于停止脚本标记的执行,一种方法是将脚本类型更改为
“text/html”
或使用html转义函数
如果不想删除原始内容,可以使用append。至于停止脚本标记的执行,一种方法是将脚本类型更改为
“text/html”
或使用html转义函数
这是
.html()
的默认行为-它将剥离脚本并评估它们,同时将内容附加到DOM中。jQuery甚至提供了默认的剥离脚本的方法,而无需对脚本进行评估以防止XSS
如果您已经在页面中执行了一个脚本,那么大多数情况下您可以将代码放在同一个脚本中。但是,如果您真的想/需要向页面添加新脚本,可以通过以下方式完成:
$('.my_div')。追加($('',{text:'alert(“foo”);'});
这是.html()
的默认行为-它将剥离脚本并评估它们,同时将内容附加到DOM中。jQuery甚至提供了默认的剥离脚本的方法,而无需对脚本进行评估以防止XSS
如果您已经在页面中执行了一个脚本,那么大多数情况下您可以将代码放在同一个脚本中。但是,如果您真的想/需要向页面添加新脚本,可以通过以下方式完成:
$('.my_div')。追加($('',{text:'alert(“foo”);'});
您是否尝试将脚本添加为text()?您所说的“运行和删除”是什么意思?您想做什么?@xylar是的,没有成功=(@ExplosionPills,我在本例中是指$('.my_div').html($('.my_div').html()+'alert(“text”))我在浏览器中收到警报,在代码中没有关于警报(“text”)的任何单词=(您是否尝试将脚本添加为text()?您所说的“运行和删除”是什么意思?@xylar是的,但没有成功=(@ExplosionPills,我在本例中的意思是$('.my_div').html($('.my_div').html()+'alert(“text”))我在浏览器中收到警报,在代码中没有一个关于警报(“text”)的单词=(此$('my_div'没有成功).append($('',{text:'alert(“foo”);}));
结果我只捕获foo,但需要获取alert('foo'))检查小提琴,它显然在DOM中附加了script
标记。不过,这听起来像是一个-更新问题,告诉我们您试图解决的问题是什么,我们会找到更好的解决方法。感谢您为我指出keepScripts
参数。此$('.my_div')没有成功。附加($(“”,{text:'alert(“foo”);'}));
结果我只捕捉到foo,但我需要获取alert(“foo”)检查小提琴,它显然在DOM中附加了脚本标记。不过,这听起来像是一个-更新问题,告诉我们您试图解决的问题是什么,我们会找到更好的解决方法。感谢您为我们指出keepScripts
参数。
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="masonry">
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="a1">
<p>text</p>
<script>alert('example')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
<div class="b1">
<p>text</p>
<script>alert('example1')</script>
</div>
</div>
$('.my_div').append($('<script>', { text: 'alert("foo");' }));