访问iFrame的内容时出错

时间:2014-01-20 21:21:03

标签: javascript html iframe hidden

我正在尝试在隐藏的iFrame中加载多个链接,一个接一个但在此行发生错误

frame.contentDocument.getElementsByClassName('radiopad')[0].getElementsByTagName('input')[0].checked = true;

表示:

Uncaught TypeError: Cannot call method 'getElementsByTagName' of undefined 

基本上,我想在iFrame中加载一个链接,然后填写加载到t中的页面并提交它(此代码经过测试并正常工作),然后,一旦完成,继续进行与下一个链接相同的事情。我目前无法获得iFrame的“文档”(不确定这是否是所谓的)。

以下是我需要它的完整代码段。

frame = document.createElement('iframe');
frame.style.display = 'none'
document.body.appendChild(frame);
for (var i = 0; i < feedbackLinks.length; i++) {
    frame.setAttribute('src', feedbackLinks[i]);
    console.log(frame.contentDocument);
    while (frame.src != 'http://feedback.ebay.com/ws/eBayISAPI.dll') {
        frame.contentDocument.getElementsByClassName('radiopad')[0].getElementsByTagName('input')[0].checked = true;
        frame.contentDocument.getElementById('comment00').value = 'Great Seller';
        var starRatings = ['v4-15', 'v4-27', 'v4-32', 'v4-37'];
        for (var ID = 0; ID < starRatings.length; ID++) {
            if (frame.contentDocument.getElementById(starRatings[ID]) != null) {
                frame.contentDocument.getElementById(starRatings[ID]).click();
            }
        }
        frame.contentDocument.getElementById('but_formSave').click();
    }
    console.log("completed link " + (i + 1));
}

提前致谢:)

1 个答案:

答案 0 :(得分:0)

我认为您的iframe指向不同的域名。你有same-domain policy violation

  

该策略允许在源自同一页面的页面上运行脚本   站点。

请阅读wiki。它已经扩展了你的问题的答案。