为什么我的功能不适用于页面加载?

时间:2017-06-24 22:58:44

标签: javascript html

我试图在用户登陆页面时立即运行一个功能。我有以下主题部分:

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

    <link rel="stylesheet" type="text/css" href="Resources/css/normalize.css">
    <link rel="stylesheet" type="text/css" href="Resources/css/ionicons.min.css">
    <link rel="stylesheet" type="text/css" href="Resources/css/animate.css">
    <link rel="stylesheet" type="text/css" href="Resources/css/style.css">
    <link rel="stylesheet" href="https://www.w3schools.com/lib/w3.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>

   <script type="text/javascript">
        function sayOK() {
            alert('ok');
        }
        window.onload = sayOK;
   </script>

</head>

为什么不说OK()运行?

3 个答案:

答案 0 :(得分:0)

您的示例代码在测试中运行良好。您可以尝试将脚本移动到页脚,就在关闭正文标记之前。

jQuery提供了一个很好的onload机制,如果你想要跨浏览器的可靠性,那就是我开始的地方。不要重新发明轮子。

https://learn.jquery.com/using-jquery-core/document-ready/

答案 1 :(得分:0)

这是在加载页面后立即运行代码的便携方式:

function documentReady (cb) {
  if (document.readyState !== 'loading') {
    cb();
  } else {
    document.addEventListener('DOMContentLoaded', cb);
  }
}

documentReady(function () {
  // YOUR CODE GOES HERE
});

答案 2 :(得分:-1)

有效。尝试创建一个单独的文件,例如ok.html,并在任何浏览器中打开它。它应该显示消息。