jQuery用脚本追加html
jQuery append html with scripts
我需要一些关于jQuery的帮助。
当我试图通过$.get获取带有装饰js页面内容的html时,它的效果很好。但是,当我试图将它附加到某个div时,所有的脚本都会被删除。
在控制台中,当我做类似的事情时,它看起来很好
$('.my_div').html() + '<script>alert("text")</script>'
但是当我做的时候
$('.my_div').html($('.my_div').html() + '<script>alert("text")</script>')
脚本正在运行并删除
如何在不运行和删除的情况下将html+js代码附加到div?
谢谢!
UPD:
我的例子:
index.html
<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>
<script>
$.get('get_news.php',function(response){
$('.masonry').append(response);
});
</script>
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>
我要去
<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>
我该怎么做?
这是.html()
的默认行为-它将剥离脚本和eval
,同时将内容附加到DOM。jQuery甚至提供了$.parseHTML
,默认情况下不评估脚本就剥离脚本,以防止XSS。
如果您已经在页面中执行了一个脚本,那么在绝大多数情况下,您可以将代码放在同一个脚本中。但是,如果您真的想要/需要在页面上附加一个新脚本,您可以通过append
:来完成
$('.my_div').append($('<script>', { text: 'alert("foo");' }));
Fiddle
如果不想删除原始内容,可以使用append。至于停止脚本标记的执行,一种方法是将脚本类型更改为"text/html"
或使用html转义函数。
http://jsfiddle.net/R5xad/
相关文章:
- JQuery无法通过.append()或追加HTML.HTML()
- Jquery DataTables 不适用于使用 javascript 追加 html
- 如何在不导致 HTML 表格失真的情况下正确使用追加
- 为数组中的每个项目追加 html 内容
- 在函数中定位动态创建的HTML元素(用于追加事件 - 而不是点击!)jQuery
- 如何将 JSON 值追加到 HTML 属性
- 将 json 数据追加到 HTML 列表框
- 从 html.append 追加的 html 下拉列表中获取返回值
- JQuery:在元素'之前追加项;s的HTML
- 在html标记中动态追加文本
- 在 HTML 中动态追加 Jquery
- 在上下文菜单上,在 HTML 表中追加行时不起作用
- HTML 单击将文本框值追加到链接
- 在 Java 脚本中使用追加时 HTML 标记不起作用,但在执行硬编码时 html 代码工作正常
- html 追加表中的空数据
- 将文本追加到内部 HTML
- HTML 追加异步
- jQuery作为文本而不是html追加
- jQuery HTML追加导致UTF-8国家语言字符问题
- 下面的代码是否将来自类的每个实例的带有文本的HTML追加到类的实例