2017-09-27 2 views
0

EDIT: J'ai découvert que le problème est lié au fait de ne pas avoir accès aux éléments d'un iframe sans API spécifique ou quelque chose comme ça. Il a été résolu. Je dois incorporer l'image du site Web Astronomy Picture of the Day. Voici le code html que j'ai maintenant:Comment intégrer une partie d'un site Web par nom de balise dans Opera Extension

<head> 
<style> 
    body, html { 
     margin: 0px; 
     padding: 0px; 
    } 
    iframe { 
     border: none; 
    } 
</style> 
</head> 
<body> 
    <iframe id="iframe" width="100%" height="600px" 
src="https://apod.nasa.gov/apod/astropix.html"></iframe> 
    <div id="PlaceToPutTable"></div> 
    <script src="panel.js"></script> 
</body> 

Voici le JavaScript que j'ai maintenant:

var iframe = document.getElementById("iframe"); 
var div = document.getElementById("PlaceToPutTable"); 
div.innerHTML = 
iframe.contentWindow.document.getElementsByTagName("a")[1]; 

J'ai essayé d'utiliser iframe.contentWindow.document.getElementByTagName("img")[0] avec et sans .innerHTML suivre. Je l'utilise comme une extension Opera Sidebar, donc je continue d'obtenir cette erreur lors de l'ajout .innerHTML: Uncaught type error: cannot read property 'innerHTML' of undifined.

J'ai obtenu ce code en manipulant le code que j'ai obtenu au this answer, mais l'image de l'image de l'astronomie du jour n'inclut pas id.

Répondre

0

The undefined property indicates that a variable has not been assigned a value.

Vous n'obtenez rien à partir de là.


Je vous suggère de déboguer un peu votre code. Tout d'abord, il semble que cela n'obtient rien iframe.contentWindow.document.getElementsByTagName("a")[1] alors vous devriez d'abord le déboguer pour voir s'il contient l'élément que vous recherchez.

Vous devez déboguer avec un journal de la console et voir ce que cela devient:

console.log(iframe.contentWindow.document.getElementsByTagName("img")); 

l'espoir que cela vous aide.

+0

Quand je fais la console donne cette erreur: Uncaught TypeError: iframe.contentWindow.document.getElementByTagName est pas une fonction. –

+0

On dirait une faute de frappe. C'est getElementsByTagName (Notez le pluriel sur Elements). Modification maintenant désolé –