Javascript-Datumsauswahlfehler in iframe

7

Ich habe eine Seite Ссылка mit einem iframe In diesem speziellen '' schreibe ich den HTML-Code dynamisch durch Ajax-Aufruf mit dem folgenden Code.

%Vor%

Wenn ich jetzt auf die Datumsauswahl klicke, wird ein Fehler in der Konsole angezeigt:

%Vor%

Können Sie mir helfen, dieses Problem zu lösen? Oder erkläre einfach die Ursache, damit ich es lösen kann

    
dang 12.07.2017, 09:35
quelle

3 Antworten

12

Sie erhalten diesen Fehler, weil Sie versuchen, auf das interne DOM eines iFrame von dem übergeordneten DOM , das es enthält, zuzugreifen. Das "click" -Ereignis vom übergeordneten DOM kann keine Aufrufe an die Elemente in einem untergeordneten Element iFrame vornehmen.

Darf ich fragen, warum Sie versuchen, in dieser Situation iFrame zu verwenden? Ich kann dir fast versichern, dass du besser dran bist, es nicht zu benutzen.

    
Carson the Powers 24.07.2017 04:46
quelle
3

Die letzte Option, die Sie haben, besteht darin, die Eigenschaft sandbox zu verwenden.

allow-scripts: Allows the embedded browsing context to run scripts (but not create pop-up windows). If this keyword is not used, this operation is not allowed.

Ссылка

Wenn das nicht funktioniert, entfernen Sie sich bitte von iframe. Das Iframe-Element wird als Sandbox-Umgebung erstellt und unterliegt sehr hohen Sicherheitsrisiken, wenn Sie die Allow-Skripts öffnen. Die resultierende Webseite / externe Seite, die in iframe eingefügt wird, kann alles tun ... buchstäblich alles, von Zugriff auf Anmeldeinformationen, Cookies, Zugriff usw., wenn Sie Sandboxing entfernen.

Iframe wird nicht empfohlen, wenn Sie in seinem Inhalt auf DOM zugreifen möchten. Wenn Sie nur auf vollständige oder teilweise Isolation achten möchten, verwenden Sie die Isolationsmethode der Webkomponente wie folgt:

Ссылка

    
Gary 24.07.2017 05:48
quelle
3

Ich denke, dass jQuery das Iframe-Element nicht lesen kann, weshalb es angezeigt wird Die Eigenschaft top of undefined kann nicht gelesen werden.

Benutze id="ifreame" im iframe Element, dann sollte es funktionieren.

%Vor%

jQuery

%Vor%     
Durgpal Singh 24.07.2017 05:36
quelle