Javascript 如何访问nw.js中iframe的内容?
我需要在nw.js中捕获iframe的内容。该页位于不同的域上。我试图正常地访问它(Javascript 如何访问nw.js中iframe的内容?,javascript,html,iframe,nw.js,Javascript,Html,Iframe,Nw.js,我需要在nw.js中捕获iframe的内容。该页位于不同的域上。我试图正常地访问它(myIframe.document),但得到了一个空的html文档(可能是某种形式的跨域安全性或其他)。但是,我可以从控制台访问iframe的内容,我猜我缺少一些设置,这些设置允许我直接从代码中执行相同的操作。但是,我不需要iframe来访问nw.js(出于安全原因,如果不可能的话,它会更好) $(函数() { //确保它实际上是在jquery的帮助下加载的 $('#myIframe').ready(函数(){
myIframe.document
),但得到了一个空的html文档(可能是某种形式的跨域安全性或其他)。但是,我可以从控制台访问iframe的内容,我猜我缺少一些设置,这些设置允许我直接从代码中执行相同的操作。但是,我不需要iframe来访问nw.js(出于安全原因,如果不可能的话,它会更好)
$(函数()
{
//确保它实际上是在jquery的帮助下加载的
$('#myIframe').ready(函数(){
console.log(window.frames[0].document);
//返回:
//
//
//
//
});
});
所以我可以访问iframe的内容,就像nw.js中的内容一样,我只是在我的原始代码中做了一些错误的事情
问题是使用jqueryready
。当我试图在触发ready
时访问iframe时,我得到了一个空文档,但当我在iframe的onload
回调中执行相同操作时,我实际上得到了所有内容
<iframe src="http://google.com" width="800" height="600" id="myIframe" onload="loaded()"></iframe>
<script>
function loaded()
{
console.log(window.frames[0].document);
// Returns the actual page
}
</script>
要获取URL的整个文档,可以在加载后使用此方法:
var Content=(new XMLSerializer()).serializeToString(iframeID.contentDocument);
我想您会在找到一些帮助-它是关于访问iframe并对其进行操作的。稍加调整,我相信它会对您有用。@Ewald我查看了您的代码,结果发现问题在于我使用了jquery。当调用jquery的
ready
回调时,iframe并没有真正准备好,但是当触发onload
事件时,iframe就准备好了。太棒了,我很高兴你发现了问题,祝你的项目顺利。
<iframe src="http://google.com" width="800" height="600" nwdisable nwfaketop></iframe>
var Content=(new XMLSerializer()).serializeToString(iframeID.contentDocument);