阿宽

Nothing is more powerful than habit!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Ext.Net中清除iframe之前显示内容

Posted on 2011-12-09 09:22  宽田  阅读(1018)  评论(0编辑  收藏  举报

    我在Ext.net Window中放入Iframe,用于调用跨域的网页。使用过程中发现调用下一个页面时,先前的页面会显示出来,然后才跳转到下一个页面,我决定清除先前的页面。

    我的做法是,在Window的Close和Hide事件中增加移除方法。即在下一个页面显示前清除页面内容。(我先前做法是在调用下一个页面时,先清除页面内容,在显示,但这样仍然会显示先前页内容。)

具体代码:

 1、Ext.Net Window Html代码

    增加了Close及Hide事件。

        <ext:Window ID="WindowSite" runat="server" Icon="Application" Height="600px" Width="1000px"
            BodyStyle
="background-color: #fff;" Padding="5" Modal="true" AutoShow="false"
            Hidden
="true" AutoDoLayout="true" Maximizable="true" Maximized="false" 
Html
=" <iframe id='iframeSite' frameborder='0' width='100%' height='100%' src=''></iframe>">
            <Listeners>
                <Close Fn="WindowCloseOrHide" />
                <Hide Fn="WindowCloseOrHide" />
            </Listeners>
        </ext:Window>

 

2、编写清除方法

     有两种,一种是直接设置空白页,代码如下。

var WindowCloseOrHide = function () {
    //清除ifame
    var iframeSite = document.getElementById("iframeSite");
    if (iframeSite) {
        iframeSite.src = "about:blank";"BlackPage.htm";      
    }
}

 另外一种,在项目建立一个页面,然后调用这个页面。我是建立“BlackPage.htm”页,在页加入等待信息,这样第次加载前都会显示等待信息,Html代码如下。

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <div style="text-align: center; color: Blue">
        正在加载……</div>
</body>
</html>

 清除代码如下:

var WindowCloseOrHide = function () {
    //清除ifame
    var iframeSite = document.getElementById("iframeSite");
    if (iframeSite) {
        iframeSite.src = "about:blank";
        //        iframeSite.src = "BlackPage.htm";      
    }
}

      注:使用以下方式清除Ifrme内容是不行的,原因是跨域操作,代码如下。

var WindowCloseOrHide = function () {
    //清除ifame
    var iframeSite = document.getElementById("iframeSite");
    if (iframeSite) {
        iframeSite.document.write("<HTML>");
        iframeSite.document.write("<BODY>Loding……");
        iframeSite.document.write("</BODY>");
        iframeSite.document.write("</HTML>");
        iframeSite.document.close();
    }
}