【发布时间】:2015-05-07 13:55:42
【问题描述】:
我正在尝试编写将在子页面(使用window.open 函数创建)完全加载后执行的 JavaScript 代码。
我尝试了window.onload 和window.setTimeout 之类的功能,但似乎都不起作用。我也尝试使用不同的浏览器,但没有成功。
我有一个 HTML 文件 myhtml.html,它调用外部 JavaScript 文件 Test1.js。 Test1.js 打开一个网页 (www.google.com) 然后生成一个弹出窗口。
HTML:
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Testin page</title>
<script type="text/javascript" src="Test1.js"></script>
<script type="text/javascript">
function callValidation()
{
var p;
var i=1;
if(document.getElementById("radio1").checked){
p="radio1";
}
directValidation(p);
alert("Ending script");
}
</script>
</head>
<body>
<h1><em><strong>Test Page</strong></em></h1>
<h4><em><strong>Version 1.0</strong></em></h4>
<form name="mainf" id = "mainf">
<input id="radio1" name ="radio1" type="radio" value = "Test Button"/>
<input type = "submit" name="submit" OnClick="callValidation();"/>
</form>
</body>
</html>
Test1.js:
var p;
function directValidation(p)
{
alert(p);
if (p="radio1")
{
fun1();
}
}
function fun1()
{
window.open("http://www.google.com");
window.onload = function(){ alert('Not Working!!'); }
alert("It is working but without waiting for page to load!! The above alert box didn't work");
}
在上面的代码中,alert('Not Working!!'); 没有执行。
alert("It is working but without waiting for page to load!! The above alert box didn't work");
在加载 www.google.com 之前执行。
在上面的代码中,我什至尝试了以下方法:window.setTimeout('',5000);,但我也无法获得 5 秒的延迟。
【问题讨论】:
-
您能否确认您的 Google 弹出窗口已打开,并且您收到“它正在工作...”的警报?
-
带有“It is working...”的警报运行良好,但在 www.google.com 完全加载之前弹出。
-
见this answer 有解决方案。
-
window.open 返回对打开窗口的引用,但在您的情况下,您将负载处理程序添加到当前窗口
-
Robin:我按照你在那篇文章中的建议编辑了脚本 w.onload = function(){ alert('Not Working!!'); } alert("它正在工作,但没有等待页面加载!!上面的警告框没有工作");还是没有运气
标签: javascript html webpage