Frage Erhalte iframe Seitentitel von Javascript mit jquery


Wie bekomme ich iframe src Seitentitel und dann den Titel der Hauptseite


6
2017-10-15 07:30


Ursprung


Antworten:


Wenn Sie es mit jQuery machen wollen:

var title = $("#frame_id").contents().find("title").html();
$(document).find("title").html(title);

Sie können das nur tun, wenn sich Seiten auf derselben Domain befinden, sonst ist es nutzlos.


7
2017-10-15 07:56



Gewähren, dass iframes src und das übergeordnete Dokument src dieselbe Domäne sind:

Elterndokument:

<html>
<head><title>Parent</title>
<body>
   <iframe id="f" src="someurl.html"></iframe>
   <script>
       //if the parent should set the title, here it is
       document.title = document.getElementById('f').contentWindow.document.title;
   </script>
</body>
</html>

someurl.html:

<html>
<head><title>Child</title>
<body>
  <script>
       //if the child wants to set the parent title, here it is
       parent.document.title = document.title;
       //or top.document.title = document.title;

  </script>
</body> 
</html>

3
2017-10-15 07:40



Sofern die Webseite im iframe nicht von der gleichen Domain wie die beinhaltende Seite ist, ist dies unmöglich.

Wenn sie dieselbe Domain haben, versuchen Sie Folgendes:

document.title = document.getElementById("iframe").documentElement.title;

2
2017-10-15 07:35



Eine Möglichkeit, Titel und Ort zu teilen:

document.write('<iframe src="http://www.yourwebsite.com/home.html?title='+document.title+'&url='+window.location+'" frameborder="0" scrolling="no"></iframe>');

und dann können Sie die Parameter auf der home.html Seite lesen.


1
2018-04-08 11:09



Dies kann mithilfe von Ereignis-Listenern auf der Seite erfolgen. Es ist nicht besonders elegant, aber die Browser habe ich es mit Unterstützung ausprobiert (also IE9 +, Firefox, Chrome).

Fügen Sie auf Ihrer Hauptseite das folgende Javascript hinzu:

function setPageTitle(event) {
    var newPageTitle = event.data
    // your code for setting the page title and anything else you're doing
}
addEventListener('message', setPageTitle, false);

Im iFrame benötigen Sie dann das folgende Skript:

var targetOrigin = "http://your.domain.com"; // needed to let the browser think the message came from your actual domain
parent.postMessage("New page title", targetOrigin); // this will trigger the message listener in the parent window

0
2018-02-05 14:09