2013-06-30 3 views
6

У меня есть контент iframe, который включает jQuery, а часть jQuery содержимого в iframe не работает в IE (часть, которая не используется jQuery работает нормально, и все работает отлично в Chrome и Firefox).jQuery в iframe не работает в IE

Вот код:

<!DOCTYPE html> 
<html> 
<head> 
    <title>iframe content</title> 
    <link rel="stylesheet" type="text/css" href="style.css"> 
</head> 
<body> 
    <h1>This heading is showing up just fine.</h1> 
    <div id="jQuery-generated-content"> 
      <!-- content dynamically generated by jQuery plugin This part is not showing in iframe in IE --> 
    </div> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"> </script> 
    <script src="pathTojQueryPlugin.js"></script> 
    <script type="text/javascript"> 
     jQuery.codeToInitiatePlugin 
    </script> 

</body> 
</html> 

Я попытался вставить JQuery код в голову, сразу после тега тела, как с относительным и абсолютным путем, но не повезло. Я был бы очень признателен, если кто-нибудь знает обходные пути для этого или что заставляет IE не читать jQuery.

Заранее благодарен!

+0

Это работает, если вы загружаете страницу обычно, а не в iframe? – Barmar

+0

Это код iframe? – raam86

+1

Да, это работает, если я загружаю страницу нормально, а не как содержимое iframe. – hotate17

ответ

5

Я также столкнулся с той же проблемой некоторое время назад. Проблема вызвана тем, что IE не может получить доступ к библиотеке jquery из iframe и, следовательно, не может прочитать код jquery. Единственным шагом будет преобразование jquery-кода в javascript.

Update:

Используя другую версию JQuery также может решить эту проблему. Или может использоваться другая библиотека jQuery.

+1

Или включить его в iframe ... – raam86

+2

В том числе библиотека jquery также не поможет ... Я пробовал это. Вы тоже можете попробовать – Sid

+0

Спасибо за комментарий, Сид. Но в этом конкретном случае мне нужно использовать jQuery, поскольку мне нужен плагин jQuery, который я использую внутри iframe, потому что он имеет точный эффект/функциональность, в которой я нуждаюсь.И мне слишком сложно писать что-то подобное/воссоздавать функциональные возможности/эффекты в javascript ... – hotate17

3

Возможно, вы уже решили это по-другому, но на случай, если кто-то еще найдет этот пост.

Вот небольшой «трюк», который может помочь в некоторых случаях.
Добавить внутри IFRAME перед использованием JQuery:

if (window.jQuery) { 
    jQuery = window.jQuery; 
    $ = window.jQuery; 
} 

Однако страница, содержащая IFrame должны JQuery. (И, желательно, такая же версия)

3

Фактический ответ на это, как говорится в комментарии hotate17, заключается в том, что он загружал объект jQuery из CDN, в этом случае CDN от Google. Загрузка ресурса jQuery с одного и того же сервера и, таким образом, тот же URL-адрес, что и источник iFrame, исправил его проблему и мою тоже, спасибо hotate17!

http://www.sandiegosoftware.net/blog/script5-access-is-denied-error-in-internet-explorer-loading-jquery/

4

С другой SO вопрос:

Это законная JQuery 1.10.1 ошибка: http://bugs.jquery.com/ticket/13980.

Source

В моем случае, используя ...

<script src="http://code.jquery.com/jquery-1.11.0.min.js"></script> 

..solved проблему. Это также была версия с родительской страницей (спасибо Avigon).

Смежные вопросы