【问题标题】:Ajax success function not called in older browsers在旧浏览器中未调用 Ajax 成功函数
【发布时间】:2013-08-08 14:18:29
【问题描述】:

使用以下 ajax,我将 javascript 代码添加到当前页面。成功后,它会从该 javascript 代码中调用 sidenote() 函数。

这适用于所有现代浏览器。但是,在 IE8 和 FF22.0 中(到目前为止我已经注意到)它成功地导入了 javascript,但不调用该函数。有没有办法解决这个问题,还是我坚持这个?

$.ajax({
    url:mpath+"scripts/stage.min.js",
    dataType:"script",
    success:function(){sidenote(1)}
})

【问题讨论】:

  • 你用的是什么版本的jQuery?
  • 哦,顺便说一句,该功能工作正常。即使在较旧的浏览器中(稍后再次调用它时)
  • 您可能想要切换到使用.done() 方法。 在您的第二条评论后更新您可能需要修改 sidenote 函数以包含一些委托。
  • 1.7 我可能会坚持下去。它在我公司的 joomla 安装中
  • 我尝试了 $.getScript() 但根本无法让它调用该函数。它总是在添加脚本之前尝试过

标签: jquery ajax internet-explorer-8 cross-browser firefox-22


【解决方案1】:

试试 dataType : 'text'dataType : 'xml'dataType : 'json' 或任何其他可用的响应类型

Bcoz IE 确实不是智能浏览器,它不假定默认值字符串。

【讨论】:

  • 你也可以试试 dataType: "text script" 这样 jquery 会将它作为文本请求,然后尝试将其解析为脚本。
  • 不幸的是,更改 dataType 只会导致所有浏览器不调用该函数,可能根本不调用它
猜你喜欢
  • 2013-08-04
  • 1970-01-01
  • 2023-03-08
  • 1970-01-01
  • 2013-02-14
  • 2015-01-15
  • 2012-07-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多