如何访问 nw.js 中 iframe 的内容?
How to access the contents of an iframe in nw.js?
我需要捕获 nw.js 中 iframe 的内容。该页面位于不同的域中。我试图正常访问它 (myIframe.document
),但我得到一个空的 html 文档(可能是某种形式的跨域安全或其他)。但是,我可以从控制台访问 iframe 的内容,我猜我缺少一些设置,这将允许我直接从我的代码中执行相同的操作。但是,我不需要 iframe 就可以访问 nw.js(出于安全原因,如果不可能的话会更好)。
<iframe src="http://google.com" width="800" height="600" id="myIframe"></iframe>
<script>
$(function()
{
// Making sure it's actually loaded with help of jquery
$('#myIframe').ready(function () {
console.log(window.frames[0].document);
// Returns:
// <html>
// <head></head>
// <body></body>
// </html>
});
});
</script>
所以事实证明我可以访问 iframe 的内容,就像在 nw.js 中一样,我只是在我的原始代码中做错了。
问题出在 jquery ready
的使用上。当我尝试在触发 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>
P.S. 建议在加载不安全内容(如外部站点)时使用 nwdisable
和 nwfaketop
属性iframe
在 nw.js.
<iframe src="http://google.com" width="800" height="600" nwdisable nwfaketop></iframe>
要获取 URL 的整个文档,您可以在加载后使用此方法:
var Content=(new XMLSerializer()).serializeToString(iframeID.contentDocument);
我需要捕获 nw.js 中 iframe 的内容。该页面位于不同的域中。我试图正常访问它 (myIframe.document
),但我得到一个空的 html 文档(可能是某种形式的跨域安全或其他)。但是,我可以从控制台访问 iframe 的内容,我猜我缺少一些设置,这将允许我直接从我的代码中执行相同的操作。但是,我不需要 iframe 就可以访问 nw.js(出于安全原因,如果不可能的话会更好)。
<iframe src="http://google.com" width="800" height="600" id="myIframe"></iframe>
<script>
$(function()
{
// Making sure it's actually loaded with help of jquery
$('#myIframe').ready(function () {
console.log(window.frames[0].document);
// Returns:
// <html>
// <head></head>
// <body></body>
// </html>
});
});
</script>
所以事实证明我可以访问 iframe 的内容,就像在 nw.js 中一样,我只是在我的原始代码中做错了。
问题出在 jquery ready
的使用上。当我尝试在触发 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>
P.S. 建议在加载不安全内容(如外部站点)时使用 nwdisable
和 nwfaketop
属性iframe
在 nw.js.
<iframe src="http://google.com" width="800" height="600" nwdisable nwfaketop></iframe>
要获取 URL 的整个文档,您可以在加载后使用此方法:
var Content=(new XMLSerializer()).serializeToString(iframeID.contentDocument);