我正在尝试在我的页面中动态创建隐藏的iframe以加载3个其他页面,以便我可以抓取所有HTML并在新窗口中将它们合并为1。
但是我坚持这个。 框架创建得很好。 但每当javascript运行到
的部分 var printWindow="";
function openNewWindow()
{
printWindow = window.open("","");
printWindow.document.open();
printWindow.document.write(HTMLfromFrames);
printWindow.document.close();
}
我收到此错误: TypeError:表达式'printWindow'[undefined]的结果不是对象。
但如果我生成一个单独调用此功能的按钮,它可以正常工作。 但是我需要它在一次点击事件中运行所有
任何人都知道什么是错的? 谢谢!
答案 0 :(得分:0)
在我看来,这就像一个范围问题。当openNewWindow返回时,printWindow对象的范围结束;换句话说,变量只存在于该函数内部,并在函数结束后立即消失。删除var
以使变量全局可用(被视为错误形式)或在代码中的其他地方声明变量,并确保它在执行时可用于openNewWindow。
答案 1 :(得分:0)
哦,我解决了。 SOmehow我宣布为全球变种 然后在方法中更早地声明obj。 printWindow = window.open(“”,“”); 仍然不确定为什么我动态创建我的iframe后无法声明它。 谢谢你的帮助!:D