2016-07-09 21 views
0

Warum ich diese Inhalte nicht von einem Iframe verstecken kann:entfernen oder ausblenden Inhalt innerhalb eines iframe

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"> 
<title>contents demo</title> 
<script src="https://code.jquery.com/jquery-1.10.2.js"></script> 
</head> 
<body> 

<iframe src="//api.jquery.com/" width="80%" height="600" id="frameDemo"></iframe> 

<script> 
$('#frameDemo').contents().find('#logo-events').hide(); 
</script> 

</body> 
</html> 

Warum dies nicht funktioniert?

Danke.

+0

es wahrscheinlich hängt davon ab, wie (und wahrscheinlich ‚wenn‘ den Inhalt des iframe zu sein wird bewertet). Versuchen Sie, das Element auszublenden, nachdem der Iframe geladen wurde: http://stackoverflow.com/questions/3142837/capture-iframe-load-complete-event – weirdgyn

Antwort

3

Dies liegt daran, dass der Inhalt der iframe auf einer anderen Domäne als die übergeordnete Seite ist. Die Sicherheitslogik des Browsers stoppt alle Versuche des übergeordneten Benutzers, domänenübergreifende Inhalte zu ändern.

Dies kann nicht vermieden werden.

0

@Rory McCrossan hat Recht.

Die einzige Problemumgehung, die ich mir vorstellen kann, besteht darin, eine weitere Seite in Ihrer eigenen Domäne zu erstellen, die den Inhalt von api.jquery.com lädt und dann den src-Punkt von iframe auf diese neue von Ihnen erstellte Seite setzt.

z. Erstellen Sie eine Seite namens jqueryApi.php, die das folgende Stück PHP-Code hat

<?php 
    $contents = file_get_contents('http://api.jquery.com/'); 
    echo $contents; 
?> 

Und dann machen die iframe-Code <iframe src="jqueryApi.php" width="80%" height="600" id="frameDemo"></iframe>

Verwandte Themen