我正在尝试根据此答案使用jQuery预加载网页: Preload Webpage with jQuery
我在同一文件夹中有loader.html
,second.html
和loader.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;
}