2013-06-30 36 views
6

Mam zawartość iframe, która zawiera jQuery, a część jQuery zawartości w iframe nie działa w IE (część, która nie jest używana jQuery działa poprawnie, i wszystko działa dobrze w Chrome i Firefox).jQuery w iframe nie działa w IE

Oto kod:

<!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> 

próbowałem wstawianie kodu jQuery w głowę, tuż po tagu ciała, zarówno względnej i bezwzględnej ścieżki, ale bez powodzenia. Byłbym bardzo wdzięczny, gdyby ktoś znał jakiekolwiek obejścia tego problemu lub powodował, że IE nie odczytałoby jQuery.

Z góry dzięki!

+0

Czy to działa, jeśli strona jest ładowana normalnie zamiast w elemencie iframe? – Barmar

+0

Czy to jest kod do elementu iframe? – raam86

+1

Tak, działa, jeśli normalnie ładuję stronę, a nie zawartość iframe. – hotate17

Odpowiedz

5

Też napotkałem ten sam problem jakiś czas temu. Problem jest spowodowany, ponieważ program IE nie może uzyskać dostępu do biblioteki jquery z poziomu elementu iframe, a zatem nie może odczytać kodu jquery. Jedynym sposobem byłoby przekonwertowanie kodu jquery do javascript.

Aktualizacja:

Korzystanie inną wersję jQuery może również rozwiązać problem. Lub inna biblioteka jQuery może być używana alternatywnie.

+1

Lub umieść go w elemencie iframe ... – raam86

+2

Włączenie biblioteki jquery również nie pomoże ... Próbowałem tego. Ty też możesz spróbować – Sid

+0

Dzięki za komentarz, Sid. Ale w tym konkretnym przypadku muszę użyć jQuery, ponieważ potrzebuję wtyczki jQuery, której używam w iframe, ponieważ ma ona dokładnie taki efekt/funkcje, których potrzebuję.I jest mi zbyt trudno napisać coś podobnego/odtworzyć funkcje/efekty w javascript ... – hotate17

3

Prawdopodobnie rozwiązałeś już to w inny sposób, ale na wypadek, gdyby ktoś inny znalazł ten post.

Oto mała "sztuczka", która może pomóc w niektórych przypadkach.
Dodaj wewnątrz iframe przed użyciem jQuery:

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

Jednak strona zawierająca iframe musi mieć jQuery. (A najlepiej ta sama wersja)

4

Z innego SO pytanie:

Jest to legit jQuery 1.10.1 bug: http://bugs.jquery.com/ticket/13980.

Source

W moim przypadku, przy użyciu ...

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

..solved problem. Zdarzyło się również, że jest taka sama jak strona nadrzędna (dzięki Avigon).