Wie alle Links in einem iframe in einem neuen Tab geöffnet werden [duplizieren]

7

Ich versuche es so zu machen, wenn Sie auf einen Link in einem <iframe> klicken, wird der Link in einem neuen Tab geöffnet - nicht in <iframe> . Bitte beachten Sie, dass ich keine Kontrolle über den Content habe, den die Leute über <iframe> sehen.

Ich versuche dies mit Javascript zu machen, wie zB $('a').setAttribute('target','_blank'); aber es funktioniert nicht für mich. Ich habe auch in meinem HTML-Dokument <base target="_blank"> , das tut auch nicht den Trick.

Ist das unmöglich? Oder suche ich nur an den falschen Stellen? Danke im Voraus!

    
Darryl Huffman 02.04.2014, 10:08
quelle

6 Antworten

7

Ich würde das erwarten:

%Vor%

.. zum Fehlschlagen (stillschweigend - weil jquery im Allgemeinen nicht ausgeführt werden kann), da es Zugriffsprobleme bei der Manipulation der Seite innerhalb des iFrame von der enthaltenden Seite gibt, wenn der Inhalt des iFrames aus einer anderen Domäne stammt.

Das heißt: Wenn Ihre eigene Seite aus der Domain a stammt (zB mysite.com) und der iframe aus der Domain b stammt (zB someothersite.com), ist das Sicherheitsverhalten des Webbrowsers so, dass JavaScript den iFrame-Inhalt manipuliert gibt einen Fehler "Zugriff verweigert".

Wenn Sie nicht-jquery Javascript verwenden, sehen Sie den Fehler. Von der Elternseite etwas ähnliches:

%Vor%

Sie werden den Fehler sehen.

Leider bin ich mir nicht sicher, was Sie dagegen tun können. Es ist eine bewusste Sache, eine Website einschließlich einer anderen zu stoppen und den Inhalt nach dem Laden zu ändern, so dass es etwas anderes sagt.

Eine Möglichkeit wäre, ein Skript auf Ihrem Server (dh dieselbe Domain) aufzurufen und eine URL einzugeben. Das Skript bekommt den Inhalt der Seite, nach der Sie gesucht haben, und gibt es an Ihren Browser zurück, so dass Sie den Inhalt Ihrer gewünschten Webseite haben, aber die Adresse davon war innerhalb Ihrer Site. ZB wenn es php wäre:

Ссылка

Achten Sie jedoch auf Probleme mit der Authentifizierung dort

    
user2808054 02.04.2014, 10:59
quelle
8

Um alle Links auf der Seite im übergeordneten Fenster zu laden, verwenden Sie:

%Vor%

Sonst in einem neuen Fenster:

%Vor%     
ronish 02.04.2014 10:14
quelle
1

Überprüfen Sie diese Lösung, die mir geholfen hat: Links erstellen in einem iframe in einem neuen Fenster öffnen

oder Sie können parent.window.open ("{{Ihr Standort}}");

versuchen     
Liad Livnat 02.04.2014 10:10
quelle
1
___ qstntxt ___

Ich versuche es so zu machen, wenn Sie auf einen Link in einem $('a').attr('target','_blank'); klicken, wird der Link in einem neuen Tab geöffnet - nicht in %code% . Bitte beachten Sie, dass ich keine Kontrolle über den Content habe, den die Leute über %code% sehen.

Ich versuche dies mit Javascript zu machen, wie zB %code% aber es funktioniert nicht für mich. Ich habe auch in meinem HTML-Dokument %code% , das tut auch nicht den Trick.

Ist das unmöglich? Oder suche ich nur an den falschen Stellen? Danke im Voraus!

    
___ answer22808143 ___

Überprüfen Sie diese Lösung, die mir geholfen hat: Links erstellen in einem iframe in einem neuen Fenster öffnen

oder Sie können parent.window.open ("{{Ihr Standort}}");

versuchen     
___ answer32767953 ___

Ersetzen Sie %code% durch %code%

    
___ antwort22809818 ___

Verwenden Sie %code% anstelle von setAttribute ...

FIDDLE

    
___ qstnhdr ___ Wie alle Links in einem iframe in einem neuen Tab geöffnet werden [duplizieren] ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer33273448 ___

mit Javascript

%Vor%

mit jquery

%Vor%     
___ tag123html ___ HTML (Hyper Text Markup Language) ist die Standard-Auszeichnungssprache, die zum Strukturieren von Webseiten und zum Formatieren von Inhalt verwendet wird. HTML beschreibt die Struktur einer Website semantisch zusammen mit Hinweisen für die Präsentation, wodurch sie eine Markup-Sprache statt einer Programmiersprache wird. Die neueste Revision der HTML-Spezifikation ist HTML5.2. ___ tag123iframe ___ Ein 'iframe' ist ein HTML-Element, das innerhalb eines Dokuments einen "Inline-Frame" erstellt, mit dem ein separates Dokument auf derselben Seite angezeigt werden kann. ___ tag123jquery ___ jQuery ist eine beliebte Cross-Browser-JavaScript-Bibliothek, die das DOM-Traversal (Document Object Model), die Ereignisbehandlung, Animationen und AJAX-Interaktionen erleichtert, indem die Diskrepanzen zwischen Browsern minimiert werden. Eine mit jQuery gekennzeichnete Frage sollte mit jQuery in Zusammenhang stehen, daher sollte jquery von dem fraglichen Code verwendet werden, und mindestens eine jquery-nutzungsbezogene Elemente müssen in der Frage enthalten sein. ___ answer22809319 ___

Ich würde das erwarten:

%Vor%

.. zum Fehlschlagen (stillschweigend - weil jquery im Allgemeinen nicht ausgeführt werden kann), da es Zugriffsprobleme bei der Manipulation der Seite innerhalb des iFrame von der enthaltenden Seite gibt, wenn der Inhalt des iFrames aus einer anderen Domäne stammt.

Das heißt: Wenn Ihre eigene Seite aus der Domain a stammt (zB mysite.com) und der iframe aus der Domain b stammt (zB someothersite.com), ist das Sicherheitsverhalten des Webbrowsers so, dass JavaScript den iFrame-Inhalt manipuliert gibt einen Fehler "Zugriff verweigert".

Wenn Sie nicht-jquery Javascript verwenden, sehen Sie den Fehler. Von der Elternseite etwas ähnliches:

%Vor%

Sie werden den Fehler sehen.

Leider bin ich mir nicht sicher, was Sie dagegen tun können. Es ist eine bewusste Sache, eine Website einschließlich einer anderen zu stoppen und den Inhalt nach dem Laden zu ändern, so dass es etwas anderes sagt.

Eine Möglichkeit wäre, ein Skript auf Ihrem Server (dh dieselbe Domain) aufzurufen und eine URL einzugeben. Das Skript bekommt den Inhalt der Seite, nach der Sie gesucht haben, und gibt es an Ihren Browser zurück, so dass Sie den Inhalt Ihrer gewünschten Webseite haben, aber die Adresse davon war innerhalb Ihrer Site. ZB wenn es php wäre:

Ссылка

Achten Sie jedoch auf Probleme mit der Authentifizierung dort

    
___ answer22808227 ___

Um alle Links auf der Seite im übergeordneten Fenster zu laden, verwenden Sie:

%Vor%

Sonst in einem neuen Fenster:

%Vor%     
___
Karim AG 02.04.2014 11:21
quelle
1

Ersetzen Sie target='blank' durch onclick='window.open();'

    
alice 24.09.2015 17:58
quelle
1

mit Javascript

%Vor%

mit jquery

%Vor%     
Ratan Paul 22.10.2015 04:33
quelle

Tags und Links