如何在Opera扩展中按标记名称嵌入网站的一部分

时间:2017-09-27 16:15:57

标签: javascript html iframe opera-extension

修改: 我发现问题与没有特定API或类似内容的iframe内无法访问元素有关。它已经解决了。

我需要嵌入Astronomy Picture of the Day网站的图片。这是我现在的HTML:

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

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

我尝试使用iframe.contentWindow.document.getElementByTagName("img")[0].innerHTML跟随它.innerHTML。 我将其用作Opera Sidebar Extension,因此我在添加Uncaught type error: cannot read property 'innerHTML' of undifined时遇到此错误:id

我通过操纵我在this answer获得的代码获得了此代码,但是当天的天文图片图片不包含gsl

1 个答案:

答案 0 :(得分:0)

  

undefined属性表示尚未分配变量   价值。

你没有从那里得到任何东西。

我建议你调试一下你的代码。首先,它似乎没有得到任何iframe.contentWindow.document.getElementsByTagName("a")[1]所以你应该首先调试它,看它是否包含你正在寻找的元素。

因此,您应该使用控制台日志进行调试,看看它得到了什么:

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

希望这会帮助你。