Javascript 从AJAX响应中提取并执行脚本
我的AJAX响应返回如下内容:Javascript 从AJAX响应中提取并执行脚本,javascript,jquery,Javascript,Jquery,我的AJAX响应返回如下内容: <div> .. </div> <script type="text/javascript"> .. </script> <script type="text/javascript"> .. </script> <div> .. </div> .. .. .. .. 我想从脚本标记执行脚本(应该可以跨浏览器工作)并在后面插入文本(div)。您的脚本标记不需要
<div>
..
</div>
<script type="text/javascript">
..
</script>
<script type="text/javascript">
..
</script>
<div>
..
</div>
..
..
..
..
我想从脚本标记执行脚本(应该可以跨浏览器工作)并在后面插入文本(div)。您的
脚本
标记不需要type=“text/javascript”
属性以实现跨浏览器兼容性
您的JavaScript将自上而下执行。因此,无论哪个脚本先出现,都将首先执行。最后添加文本插入,如下所示:
<div>
..
</div>
<script type="text/javascript">
..
</script>
<script type="text/javascript">
..
</script>
<div>
..
</div>
HTML:
从ajax响应中提取脚本通常是不好的做法(缓存、安全性等等)。 最好处理ajax响应中返回的数据(JSON)。考虑使用jQuery或其他框架,因为它们提供跨浏览器功能和DOM操作内置。p> 请参见以下DOM操作示例:
$(document).ready(function() {
var $grouplist = $('#groups');
$.each(myData, function() {
$('<li>' + this.name + '</li>').appendTo($grouplist);
});
});
$(文档).ready(函数(){
var$grouplist=$(“#组”);
$.each(myData,function(){
$(“”+this.name+“ ”).appendTo($grouplist);
});
});
@
如果您想在没有框架的情况下继续使用本机功能,javascript提供了依赖于浏览器的本机dom操作功能
将新的
元素添加到正文时,应自动注册该元素 谢谢大家。
我创建了这样的解决方案:
var scripts = [];
$(response).each(function(key, element){
if ($(element).is('script')) {
scripts.push(element.innerHTML);
} else {
$('test').append($(element));
}
});
$.each(scripts, function(key, element){
eval(element);
});
好吧,jQuery内置了这个功能……尝试一下新的
元素吗?在本文中,text/javascript
是自Netscape以来script
的默认类型;)
var scripts = [];
$(response).each(function(key, element){
if ($(element).is('script')) {
scripts.push(element.innerHTML);
} else {
$('test').append($(element));
}
});
$.each(scripts, function(key, element){
eval(element);
});