我開發了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