jQuery 1.4 ajax回调,html()从响应中剥离外部JS

时间:2010-01-21 09:32:38

标签: javascript jquery html ajax external

使用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加载本地请求

这种行为是故意的,我可以绕过它,还是我只是做错了?

2 个答案:

答案 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”插件似乎也无法修复它。