为iframe获取对象null.使用jsdom和所需选项创建iframe
Getting object null for iframe.contentDocument iframe created iframe using jsdom with required options
var elementFrame = window.document.createElement('iframe');
elementFrame.style.display = 'none';
elementFrame = window.document.body.insertBefore(elementFrame, null);
if (elementFrame.contentDocument) {
element = elementFrame.contentDocument;
} else if (element.contentWindow) {
element = elementFrame.contentWindow.document;
}
console.log("Element **********" + element);
我正在使用带有所需参数的jsdom
var path = require("path");
global.jsdom = require("jsdom");
global.jsdom.defaultDocumentFeatures = {
ProcessExternalResources: true,
ProcessExternalResources : ['script', 'frame', 'iframe'],
FetchExternalResources : ['script','img','css','frame','iframe','link'],
MutationEvents: true,
QuerySelector : true
};
我得到null的contentDocument。我应该怎么做,以获得html对象的iframe在jsdom?
您的代码完成了您想要它做的事情,但是您可能试图在文档完成加载之前添加iframe。在<body>
标签的末尾添加javascript,它就可以工作了:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
var elementFrame = window.document.createElement('iframe');
elementFrame.style.display = 'none';
elementFrame = window.document.body.insertBefore(elementFrame, null);
if (elementFrame.contentDocument) {
element = elementFrame.contentDocument;
} else if (element.contentWindow) {
element = elementFrame.contentWindow.document;
}
console.log("Element **********" + element);
</script>
</body>
</html>
相关文章:
- 使用jQuery从原始页面内容创建iframe
- 动态创建的iframe中的window.onerror在lne 0处给出脚本错误
- 谷歌索引iframe动态创建了什么
- 如何在不使用iframe或库的情况下创建剪切显示窗口区域
- 动态(重新)创建iframe内容不会重置Chrome中的JS对象
- 附加'沙箱'属性设置为动态创建的iframe以停止重定向
- 如何设置外部javascript创建的iframe的位置
- 如何在 iframe 中创建 HTML5 数据属性
- 创建使用 ajax 更新 iframe 的链接
- 如何在跨域中创建响应式iframe
- 如何创建iframe内容的书签
- 按日期为iframe创建一个HTML链接
- 如何从主框架获取对在iframe上创建的对象的引用
- 在Internet Explorer 8中的Iframe中创建TinyMCE时出现问题
- 为其他域的 iframe 创建内容
- Ajax Iframe 创建(Spotify widget):x 帧错误
- 使用 jquery 从 iframe 创建弹出窗口
- 为iFrame创建浮动水平滚动条
- ExtJs,从不同版本的iframe创建窗口,正确设置高度
- 为两个iframe创建公共卷轴