使用jQuery 1.4我在使用html()
访问时删除了ajax响应中的外部JS问题。
我正在使用ajax请求为tumblr主题创建无限滚动效果以加载下一页。 Tumblr在音频和幻灯片帖子中输出JS以呈现<embed>
元素(Flash播放器)以显示内容。标记无法更改。
使用jQuery 1.3.2一切正常,外部JS被执行并呈现玩家,但是在1.4中,javascript被删除,我留下了后备文本。 JS包含在响应中,但是当在ajax回调中使用html()
时,我无法检索或获取javascript来执行。
我想使用jQuery 1.4,因为我在其他部分使用了它的一些新功能,我可以使用split
让它工作但是我不确定将响应分开是多么可靠一个特定的字符串。
我准备了basic sample(包含2个文件,test.html&amp; request.html)来证明这个问题。打开test.html以从request.html加载本地请求
这种行为是故意的,我可以绕过它,还是我只是做错了?
答案 0 :(得分:0)
这看起来像1.4中的错误 - 我使用您的示例代码获得相同的结果;切换回1.3.2允许嵌入式脚本再次执行。
文档当然没有提及1.4中任何阻止在检索到的HTML中执行脚本的更改。我会在jQuery forum发布一个问题,看看是否有其他人遇到了这个问题;你也可能会得到一个jQuery开发者的注意。
答案 1 :(得分:0)
来自.ajax()上的jQuery文档:
如果指定了html,则任何嵌入的 检索到的数据中的JavaScript 在HTML之前执行 以字符串形式返回。同样的, 脚本将执行JavaScript 从服务器撤回, 然后返回脚本本身 文本数据。
我没有找到任何解决方法......但它似乎与1.3.2的行为不同,“1.3-compat”插件似乎也无法修复它。