JavaScript 页面加载功能不工作
JavaScript on page load function not working
我正在尝试编写 JavaScript 代码,该代码将在子页面(使用 window.open
函数创建)完全加载后执行。
我尝试了 window.onload
和 window.setTimeout
等功能,但 none 似乎有效。我也尝试过使用不同的浏览器,但没有成功。
我有一个 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 秒的延迟。
尝试将 onload 放在函数外。那是事件,它在事件发生时触发,在这种情况下,当 windows 被加载时。在执行此操作的过程中,当您调用 fun1 时,您将 onload 事件绑定到 window。
window.open
会打开自己的 window,有自己的环境。如果您希望在新 window 中显示弹出窗口,您需要在新 window.
中加载的页面的源代码中包含该弹出窗口
在你的行中
window.onload = function(){ alert('Not Working!!'); }
window
对象是源 window,而不是新打开的 window。来源 window 可能早已通过 onload
事件。
编辑
如果您只想在新标签页中打开对 google 的查询,请尝试:
window.open("http://www.google.com/#q=SEARCH_TERM");
但请注意 - 除非这是作为用户交互的直接结果执行(例如:单击按钮),否则这通常会被浏览器阻止,因为它被视为 "pop-up"。
当你
window.onload = function(){ alert('Not Working!!'); }
在您的代码中,window
指的是您的主页。
既然要关联到新打开的页面,就得获取新页面的reference,由window.open()
返回
var openedWindow = window.open("http://www.google.com");
openedWindow.onload = showAlert();
function showAlert() {
alert('Not Working!!');
}
在应该打开的页面中,在body标签中,放置一个onload标签:
<body onload="yourfunction()">HTML code</body>
我正在尝试编写 JavaScript 代码,该代码将在子页面(使用 window.open
函数创建)完全加载后执行。
我尝试了 window.onload
和 window.setTimeout
等功能,但 none 似乎有效。我也尝试过使用不同的浏览器,但没有成功。
我有一个 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 秒的延迟。
尝试将 onload 放在函数外。那是事件,它在事件发生时触发,在这种情况下,当 windows 被加载时。在执行此操作的过程中,当您调用 fun1 时,您将 onload 事件绑定到 window。
window.open
会打开自己的 window,有自己的环境。如果您希望在新 window 中显示弹出窗口,您需要在新 window.
在你的行中
window.onload = function(){ alert('Not Working!!'); }
window
对象是源 window,而不是新打开的 window。来源 window 可能早已通过 onload
事件。
编辑
如果您只想在新标签页中打开对 google 的查询,请尝试:
window.open("http://www.google.com/#q=SEARCH_TERM");
但请注意 - 除非这是作为用户交互的直接结果执行(例如:单击按钮),否则这通常会被浏览器阻止,因为它被视为 "pop-up"。
当你
window.onload = function(){ alert('Not Working!!'); }
在您的代码中,window
指的是您的主页。
既然要关联到新打开的页面,就得获取新页面的reference,由window.open()
var openedWindow = window.open("http://www.google.com");
openedWindow.onload = showAlert();
function showAlert() {
alert('Not Working!!');
}
在应该打开的页面中,在body标签中,放置一个onload标签:
<body onload="yourfunction()">HTML code</body>