如何在加载页面时创建弹出窗口?

时间:2011-10-11 09:00:34

标签: javascript jsp jquery popup

我花了两天时间研究这个话题。我需要在页面加载时显示弹出窗口,但我只在页面加载后才显示它。

在加载页面后执行弹出窗口的代码(在.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

有关可能的解决方案的任何建议吗?

2 个答案:

答案 0 :(得分:1)

Javascript从页面读取时执行 - 在页面顶部放置一个<script>标记以创建加载div /对话框。

答案 1 :(得分:0)

我不确定在页面加载之前你想要做什么,但是如果它不希望用户在决策点之前下载整个页面,我只会有一个中间页面代替。

如果只是在用户看到任何内容之前需要运行的代码,则在代码执行完之前使页面主体不可见(即在CSS中显示:none)。代码完成后,再次显示正文。

也许这些不是优雅的解决方案,但如果你想在服务器和客户端之间做一些事情,那么无论如何都可能有更好的地方去做。