我目前正在编写一个程序,它使用AJAX加载表单来编辑网站上的对象。我在Loading script tags via AJAX上发现了类似的问题,但它并不能真正满足程序的需求。AJAX脚本加载
返回的ajax是一个预先构建的一组表单元素,当调用某个区域时,比如TinyMCE textarea(它就是这样)时,它会返回一组内置到文本中的脚本标记。
所以我的问题是,是否有可能运行已放在div中的脚本标记并运行它们?
另外,我想避免使用jQuery,因为它可以在任何数量的平台上运行。
我目前正在编写一个程序,它使用AJAX加载表单来编辑网站上的对象。我在Loading script tags via AJAX上发现了类似的问题,但它并不能真正满足程序的需求。AJAX脚本加载
返回的ajax是一个预先构建的一组表单元素,当调用某个区域时,比如TinyMCE textarea(它就是这样)时,它会返回一组内置到文本中的脚本标记。
所以我的问题是,是否有可能运行已放在div中的脚本标记并运行它们?
另外,我想避免使用jQuery,因为它可以在任何数量的平台上运行。
是的,您可以将传入的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库采取逃避任何报价或其他JSON特殊字符,无论是在JS或HTML值问题的关心。
同时返回html和js会保存一个Ajax调用(这可能很重要),并且通常会相对于两个调用简化您的代码。
我在生产中使用这种技术,效果很好。
我正在考虑这样做,并在单独的ajax查询中创建它 – topherg
@Chris,感谢您的支持。另外,请参阅上面的答案。 –
“另外,我想避免使用jQuery,因为它可以在任何数量的平台上运行。”这些平台可以是哪些平台? jQuery是用JavaScript编写的。 –
好吧,我的意思是没有jQuery – topherg