我花了两天时间研究这个话题。我需要在页面加载时显示弹出窗口,但我只在页面加载后才显示它。
在加载页面后执行弹出窗口的代码(在.js文件中) 即使我在jsp文件的标题中调用js代码,它仍然会在页面加载后显示。但是,如果我在调用jsp之后在jsp文件中放了一个“alert”脚本,它会在页面加载之前执行,而不是弹出窗口。
弹出窗口的javascript代码具有以下结构:
package.popup = {
init : function() {
this._mypopup();
},
_myPopup : function() {
//...(code)
alert("This alert is also displayed after the page is loaded");
jQ.get('myPopupData.do?ajax=ajax', function(popupData) {
//...(code)
}
});
}
}
};
.jsp中的代码是这样的:
//... some code
<div class="introSection">
<div class="header">
<header>
<hdgroup>
<h1>Welcome to myPage.</h1>
</hdgroup>
<jwr:script src="/javascript/bundles/jquery-1.6.1.min.js" useRandomParam="false" />
<jwr:script src="/javascript/bundles/homePage.js" useRandomParam="false" />
<jwr:script src="/javascript/bundles/mobilePopup.js" useRandomParam="false" />
<script language="javascript">alert("This alert is placed after the popup code is called in the header, but it's showed before");</script>
</header>
</div>
<ul>
//more code
</ul>
//more code
有关可能的解决方案的任何建议吗?
答案 0 :(得分:1)
Javascript从页面读取时执行 - 在页面顶部放置一个<script>
标记以创建加载div /对话框。
答案 1 :(得分:0)
我不确定在页面加载之前你想要做什么,但是如果它不希望用户在决策点之前下载整个页面,我只会有一个中间页面代替。
如果只是在用户看到任何内容之前需要运行的代码,则在代码执行完之前使页面主体不可见(即在CSS中显示:none)。代码完成后,再次显示正文。
也许这些不是优雅的解决方案,但如果你想在服务器和客户端之间做一些事情,那么无论如何都可能有更好的地方去做。