获取PhantomJS中IFrame的文档对象
Get the document object of an IFrame in PhantomJS?
我试图在设置iframe.src
后获得Iframe的文档。我称它为phantom-node
。当iframe为空时,函数返回error
:
fetchGuestbookEntries: function () {
var getGuestbookForPage = function (doc) {
var result = [];
var rows = doc.querySelectorAll('td[class="guestbook"]');
var date = "";
var entry = "";
for (var i = 0; i < rows.length; i++) {
date = i % 2 == 0 ? rows[i].innerText : date;
entry = i % 2 != 0 ? rows[i].innerText : entry;
if (date && entry) {
var info = date.split(''n').map(function (elem) {
return elem.replace(''n', '').trim();
});
result.push(
{
info: {
guestname: info[0],
date: new Date(info[3]).toISOString().slice(0, 10),
time: info[4].replace(/Uhr|h/gi, '').trim()
},
entry: entry.trim()
}
);
date = "";
entry = "";
}
}
return result;
};
var getPaginationSize = function () {
return document.querySelector('td[class="guestbook_navijump"]') ?
document.querySelector('td[class="guestbook_navijump"]').querySelectorAll('a').length : 0;
};
var getIframeDoc = function(ifrm) {
return ifrm.document ||
ifrm.contentDocument ||
ifrm.contentWindow.document;
};
var pagination = getPaginationSize();
var entries = [];
for (var i = 0; i <= pagination; i++) {
var paginationPageUrl = window.location.href + "?jump=" + i;
var iframe = document.createElement('iframe');
iframe.src = paginationPageUrl;
var doc = getIframeDoc(iframe);
entries.push(getGuestbookForPage(doc));
}
return entries;
}
有办法得到文件吗?
错误:
Uncaught TypeError: Cannot read property 'document' of null
at <anonymous>:2:21
at Object.InjectedScript._evaluateOn (<anonymous>:895:140)
at Object.InjectedScript._evaluateAndWrap (<anonymous>:828:34)
at Object.InjectedScript.evaluate (<anonymous>:694:21)
我通常在PhantomJS中打开页面。
你应该能够得到这个
document.getElementById('myframe').contentWindow.document
相关文章:
- 如何将文档对象创建为HTML页面
- 将文档对象传递给函数
- ajax响应JavaScript中的文档对象
- XUL文档与HTML文档对象有何不同
- 我可以在不使用XMLHttpRequest或文档对象的情况下使用Javascript来获取网页吗
- 如何将外部HTML文件加载到Javascript文档对象中
- 如何将对象数组转换为单个 JSON 文档/对象
- 文档对象模型问题
- 将jQuery与我自己的文档对象一起使用
- 活动类添加到菜单中的错误文档对象
- 当我们尝试使用直接引用调用文档对象方法时,例如:var kk = document.getElementById;kk(
- 文档对象用法和行为的activeElement属性.文档对象的
- 从html页面的url获取文档对象
- clonoNode()Dom方法无法克隆给定的Xml文档对象
- Java文档对象中的Javascript
- JavaScript文档对象lastModified使用toLocale字符串
- 如何在IE9中原型扩展文档对象
- 如何从另一个框架访问框架的文档对象?
- 如何获取iframe的文档对象
- jQuery:如何取消绑定到文档对象的事件