JavaScript 页面加载功能不工作

JavaScript on page load function not working

我正在尝试编写 JavaScript 代码,该代码将在子页面(使用 window.open 函数创建)完全加载后执行。

我尝试了 window.onloadwindow.setTimeout 等功能,但 none 似乎有效。我也尝试过使用不同的浏览器,但没有成功。

我有一个 HTML 文件,myhtml.html,它调用外部 JavaScript 文件,Test1.jsTest1.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>