我很确定这是不可能的,但我可能是错的。 我被要求保留一个网页,直到另一个页面准备就绪,然后再显示后者。
考虑例如pageA.html,其中包含指向pageB.html的链接。 pageB有一些创建页面的jScript(实际上是GWT,但假装你不知道)。
用户希望继续显示pageA,直到pageB准备好显示。 这是可能的,保持两页分开吗?
答案 0 :(得分:1)
你可以看看AngularJS。 (SPA =单页申请)。您可以在当前页面中加载新视图(“页面”)并显示加载程序或当前页面,直到加载完成。
答案 1 :(得分:1)
您可以使用jQuery $(window).load(function(){});
并在现有页面上创建叠加层。
即。用户加载页面A,您可以立即看到阻止页面可见性的叠加层。触发加载事件后,您可以删除叠加层。
这与您提出的问题略有不同,但可能是一种方法。
答案 2 :(得分:0)
你可以使用Javascript和AJax实现这一点
JS on page.html
<script>
function loadPageB(){
var html = document.getElementById("html");
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
html.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","pageB.html",true);
xmlhttp.send();
}
</script>
HTML页面
<!-- some code here -->
<input type="button" value="go to PageB" onclick="loadPageB()"/>
<!-- some code here -->
在上面的示例中,点击按钮后会加载page.html
答案 3 :(得分:0)
您可以继续检查网址,直到网页存在。这意味着您要重定向到的页面尚未存在,并且将在某个时刻创建。
链接可能是
<a href="javascript:;" onclick="delayRedirectTo('my-generated-page.html');">link text</a>
然后在delayRedirectTo
函数中包含一些逻辑。
function delayRedirectTo(path){
var xhr = new XMLHttpRequest();
xhr.onreadystatechange=function(){
// Status will only be 200 when the page exists
if (xhr.readyState==4 || xhr.status == 200)
{
// Redirect to page.
window.location.href = path;
}
}
window.setInterval(function(){
xhr.open("GET",path,true);
xhr.send();
}, 5000); // check every 5 seconds.
}