尝试使用jQuery预加载网页时出现“ TypeError:e为null”

时间:2018-06-28 07:26:45

标签: jquery typeerror preloader

我正在尝试根据此答案使用jQuery预加载网页: Preload Webpage with jQuery

我在同一文件夹中有loader.htmlsecond.htmlloader.css。下面的代码在Web服务器上可以运行,但是当我从本地文件系统加载loader.html时失败。

Firefox控制台报告: TypeError: e is null jquery-3.3.1.js:1509:1。 jQuery代码:

Sizzle.contains = function( context, elem ) {
    // Set document vars if needed
    if ( ( context.ownerDocument || context ) !== document ) { // ln.1509
        setDocument( context );
    }
    return contains( context, elem );
};

(jQuery v2和v1发生类似错误...)

这是否也可以在本地文件系统上工作?

主页(loader.html):

<!DOCTYPE html>
<html>
<head>
    <title>Loader 2</title>
    <meta charset="utf-8">
    <link rel="stylesheet" type="text/css" href="loader.css">

    <script src="https://code.jquery.com/jquery-3.3.1.js""></script>
</head>
<body id=body>

    <div id="overlay">
          <div class="spinner"></div> 
    </div>

    <div id='second' ></div>

    <script type="text/javascript">

        var overlay = document.getElementById("overlay");

        $(document).ready(function () {
            console.log('ready..');

            $.get('second.html', function(data) {
                console.log(data);
                $('#second').html(data)
                overlay.style.display = 'none';
                console.log('get done');
            });
        });

    </script>
</body>
</html>

html代表second.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <p>Hello from second...</p>
</body>
</html>

loader.css

body{
    width: 100%;

    overflow-x: hidden;
}

.spinner{
    width: 80px;
    height: 80px;

    border: 6px solid #f3f3f3;
    border-top: 6px solid #f25a41;
    border-radius: 100%;

    position: absolute;
    top:0;
    bottom:0;
    left:0;
    right: 0;
    margin: auto;

    animation: spin 1s infinite linear;
}

@keyframes spin {
    from{
        transform: rotate(0deg);
    }to{
        transform: rotate(360deg);
    }
}

#overlay{
  height:100%;
  width:100%;
  /*background:rgba(0, 0, 0, 1);*/
  background: white;
  position:fixed;
  left:0;
  top:0;
 }

0 个答案:

没有答案