2010-10-17 21 views
7

Lange Zeit lurker von stackoverflow und nur etwas mit iframes und jquery versuchen, für die ich keine Antwort finden konnte.Jquery innerhalb Iframe

Ich habe jquery Ort auf der Hauptseite, aber nicht innerhalb des Rahmens, in meinem iframe habe ich die üblichen $ (Dokument) jquery.

Leider bekomme ich diesen Fehler in Firebug

Gibt es eine Möglichkeit, dies zu umgehen, ohne Aufruf jquery in jedem iframe „$ nicht definiert ist“?

Antwort

6

Jeder Rahmen hat eine eigene Javascript-Umgebung mit einem anderen globalen Gültigkeitsbereich. (Obwohl sie andere Frames zugreifen können, die parent und frames Eigenschaften verwenden.

Daher müssen Sie jQuery und andere Skriptdateien auf der Seite innerhalb jedes Rahmens aufzunehmen. (Einschließlich aller Plug-ins durch den Rahmen verwendet wird)

Wenn Sie wirklich wollen, Sie top.$('selector', document) innerhalb eines Rahmens schreiben könnte, aber ich würde es nicht empfehlen.

+1

Wie kommen Sie es nicht empfehlen würde, Sicherheitslücke oder langsam? –

+2

Weder noch. es ist verwirrend und verursacht unnötige Kopplung. – SLaks

+1

Nur eine weitere Anmerkung .. Wenn Sie sich entscheiden, dies zu implementieren, müssen der Rahmen und der Elternteil in der gleichen Domäne sein damit die Umgebungen miteinander kommunizieren können. Dies ist eine Sicherheitsfunktion. – incredimike