AJAX脚本加载

时间:2011-09-12 14:33:32

标签: javascript ajax

我目前正在编写一个程序,该程序使用AJAX加载表单以编辑网站上的对象。我在Loading script tags via AJAX找到了一个类似的问题,但它并没有真正满足程序的需要。

返回的ajax是一个表单中预先构建的元素集,当某些区域被调用时,例如,一个TinyMCE textarea(它是),它返回一组内置在文本中的脚本标记。

所以我的问题是,是否可以运行已放入div中的脚本标记并运行它们?

另外,我想避免使用jQuery,因为它可以在任意数量的平台上运行。

2 个答案:

答案 0 :(得分:1)

你的意思是你从ajax返回一个js脚本并想运行它?如果是这样,你可以使用eval函数。

答案 1 :(得分:1)

是的,您可以将传入的html和脚本添加到dom,然后在dom中搜索任何脚本标记。然后,您可以评估脚本,如果愿意,可以忽略任何jQuery脚本标记。

然而:

这种解决方案往往非常脆弱。

将Ajax有效负载修改为单独的html和javascript脚本会更好,更稳定。这样,您的Ajax处理程序就能够直接处理它们而无需将它们分开。

<强>加

Re:如何发回html和javascript部分:你可以进行单独的Ajax调用,也可以返回包含这两部分的JSON对象。例如:

{"js": "<the js part of the response>",
 "html": "<the html part of the respons>"}

在主机系统上使用json库来解决在js或html值中转义任何引号或其他json特殊字符的问题。

同时返回html和js会保存Ajax调用(这可能很重要),并且通常会比两次调用简化代码。

我在制作中使用这种技术,效果很好。