如何仅使用javascript等待iframe内容加载
我正在尝试为一个网站创建一个打印功能,动态地将网页加载到弹出窗口中。整个情况有点奇怪,所以我会解释我到底在做什么,如果有人对我如何以更有效的方式完成这个过程有任何建议,我洗耳恭听 因为我有多个需要一起打印的网页,并且我无法控制将提供什么内容,所以我决定最好在iFrame中加载所有内容(主要是因为许多文档包含脚本和样式,如果简单地一起放到一个页面上,会污染其他文档……) 因为iframe是不灵活的,所以我找到了确定iframe需要多大尺寸的唯一方法,我必须单独渲染每个web文档并记录高度,然后以我最初记录的高度在iframe中渲染每个文档 到目前为止,我已经准备好在单个页面上呈现每个iframe,并且正在使用以下代码创建一个新的iframe元素如何仅使用javascript等待iframe内容加载,javascript,iframe,Javascript,Iframe,我正在尝试为一个网站创建一个打印功能,动态地将网页加载到弹出窗口中。整个情况有点奇怪,所以我会解释我到底在做什么,如果有人对我如何以更有效的方式完成这个过程有任何建议,我洗耳恭听 因为我有多个需要一起打印的网页,并且我无法控制将提供什么内容,所以我决定最好在iFrame中加载所有内容(主要是因为许多文档包含脚本和样式,如果简单地一起放到一个页面上,会污染其他文档……) 因为iframe是不灵活的,所以我找到了确定iframe需要多大尺寸的唯一方法,我必须单独渲染每个web文档并记录高度,然后以我
var body = popWindow.document.createElement("body");
var iframe = popWindow.document.createElement("iframe");
iframe.contentDocument.open();
iframe.contentDocument.write(data);
iframe.contentDocument.close();
问题发生在我击中时
iframe.contentDocument.open();
iframe已实例化,但contentDocument似乎为空。我曾尝试等待加载此内容,但它只是无限地静止和循环。您可以使用jQuery等待加载帧,然后它们完成您的工作
$("#your-frame").load(function () {
//frames["your-frame"]
});
编辑:仅使用javascript
var yourFrame = document.getElementById('your-frame');
yourFrame.addEventListener("load", function() {
});
您可以使用jQuery等待帧加载,然后由它们完成您的工作
$("#your-frame").load(function () {
//frames["your-frame"]
});
编辑:仅使用javascript
var yourFrame = document.getElementById('your-frame');
yourFrame.addEventListener("load", function() {
});
您只需将事件侦听器附加到iframe的窗口:
iframe.window.addEventListener('load', function(){ ...
您只需将事件侦听器附加到iframe的窗口:
iframe.window.addEventListener('load', function(){ ...
浏览器的XSS过滤器是否可以介入?(检查控制台)我不知道它怎么可能,弹出窗口是脚本正在执行的页面的子窗口。我写的所有数据都来自js。浏览器的XSS过滤器会介入吗?(检查控制台)我不知道它怎么可能,弹出窗口是脚本正在执行的页面的子窗口。我写的所有数据也都来自js。我需要一个纯js的答案。不幸的是,jquery不是一个选项。这应该可以工作
var yourFrame=document.getElementById('your-frame');addEventListener(“load”,function(){})我需要一个纯js的答案不幸的是,jquery不是一个选项。这应该可以var yourFrame=document.getElementById('your-frame');addEventListener(“load”,function(){})如果我尝试这样做,代码>窗口是未定义的,可能是因为还没有加载?等待iframe本身加载没有任何作用。有一个问题,您是否将iframe附加到dom?如果我尝试这样做,窗口是未定义的,可能是因为它尚未加载?等待iframe本身被加载并没有任何作用。一个问题,您是否将iframe附加到dom?