2017-09-27 2 views
0

EDIT: この問題は、iframe内の要素に特定のAPIやそのようなものがないとアクセスできないことがわかりました。それは解決されました。Operaの拡張機能のタグ名でWebサイトの一部を埋め込む方法

私はAstronomy Picture of the Dayウェブサイトの画像を埋め込む必要があります。ここで

<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> 

私が今持っているJavaScriptをされています:私はそれを次のようにして.innerHTMLなしiframe.contentWindow.document.getElementByTagName("img")[0]を使用してみましたが

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

は、ここで私が今持っているhtmlがあります。 これをOpera Sidebar Extensionとして使用していますので、.innerHTMLUncaught type error: cannot read property 'innerHTML' of undifinedを追加するとこのエラーが発生します。

this answerにあるコードを操作してこのコードを取得しましたが、天文画像にはidが含まれていません。

答えて

0

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

あなたはそこから何も取得していません。


私はあなたのコードを少しデバッグすることをお勧めします。まず第一に、これは何も得られないようです。iframe.contentWindow.document.getElementsByTagName("a")[1]あなたが探している要素が含まれているかどうかを最初に調べるべきです。

ですから、コンソールログをデバッグし、これが得るものを見る必要があります。

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

ホープこれはあなたを助けます。

+0

これを行うと、コンソールに次のエラーが表示されます。Uncaught TypeError:iframe.contentWindow.document.getElementByTagNameが関数ではありません。 –

+0

タイプミスのようです。それはgetElementsByTagNameです(要素の複数形に注意してください)。今編集していません –

関連する問題