我目前正在编写一个程序,该程序使用AJAX加载表单以编辑网站上的对象。我在Loading script tags via AJAX找到了一个类似的问题,但它并没有真正满足程序的需要。
返回的ajax是一个表单中预先构建的元素集,当某些区域被调用时,例如,一个TinyMCE textarea(它是),它返回一组内置在文本中的脚本标记。
所以我的问题是,是否可以运行已放入div中的脚本标记并运行它们?
另外,我想避免使用jQuery,因为它可以在任意数量的平台上运行。
答案 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调用(这可能很重要),并且通常会比两次调用简化代码。
我在制作中使用这种技术,效果很好。