AFAIK,addEventListener('loadstop', ...)
,InAppBrowser API之一,不适用于iframe。
我需要我的脚本由executeScript
执行,等到iframe加载完毕。我同意术语“已加载”#39;是不确定的,所以可以将它视为iframe元素的onload
事件。但是我不知道如何注册事件处理程序(在executeScript中)并从中检索返回值。因为executeScript
将last语句的值传递给它的回调,我认为没有办法将它传递到外部。
ref.executeScript({code:String.raw`
document.iframe.addEventListener("load", function(){
//How can I pass this outside executeScript?
document.iframe.contentDocument.innerHTML
})
`})
然后等待iframe加载的正确方法是什么
答案 0 :(得分:0)
你可以通过" polling"对于加载的值:
一次:
ref.executeScript({code:String.raw`
window.iframeContent = null;
document.iframe.addEventListener("load", function(){
window.iframeContent = document.iframe.contentDocument.innerHTML;
})
`})
然后重复调用以下executeScript,直到得到一个值(使用setInterval或类似):
ref.executeScript({code:String.raw`
return window.iframeContent;
`})