我开发了Web应用程序A,需要通过IFrame从Web应用程序B中调用。我被迫这样做,因为应用程序B是第三方,我没有它的源代码。IE 9抛出“Error:'jQuery'未定义”当从iFrame中启动时
在IE 9中一切正常,直到我开始使用IFrame。它给我的错误:
'jQuery' is undefined.
这不会在Firefox或Chrome发生。我已经通过IE的调试器验证了jquery-ui-1.10.3文件正在被拉入。
我该如何解决这个问题?
我开发了Web应用程序A,需要通过IFrame从Web应用程序B中调用。我被迫这样做,因为应用程序B是第三方,我没有它的源代码。IE 9抛出“Error:'jQuery'未定义”当从iFrame中启动时
在IE 9中一切正常,直到我开始使用IFrame。它给我的错误:
'jQuery' is undefined.
这不会在Firefox或Chrome发生。我已经通过IE的调试器验证了jquery-ui-1.10.3文件正在被拉入。
我该如何解决这个问题?
您可能使用的是具有影响IE和Opera的bug的jQuery 1.10.1。该错误导致jquery在与父页面不同的iframe中使用时出错。升级到最新版本的jquery(1.10.2或1.11+)将解决它。
编号:http://bugs.jquery.com/ticket/13980
的jQuery 2.0.2也受这个错误,并固定在2.0.3
我正在使用jquery-2.0.3和jquery-ui-1.10.3 – Sean
而且你已经在调试器中验证了jquery 2.0.3正在加载?你在调试器中看到任何其他错误吗? –
的问题是,IE的“文件模式”设置为IE7标准。我没有意识到在IE中有一个“文档模式”,我当然不记得从9开始设置它到IE7。
无论如何,现在我有一个相关的问题,即iFrame不显示正确高度。
在IE中使用iFrames确实是一门黑暗艺术。 – Gjohn
我猜你正遇到跨域问题。如果您从另一个域名中调用第三方应用程序,那么您拥有的jQuery将在您的页面上工作,但我相信它会受到影响iframe内容的限制。 –
但同样的解决方案在Chrome和Firefox中工作正常(至今)。 – Sean