zoukankan      html  css  js  c++  java
  • IE8 模式窗口 回传值 打开新窗口问题

    前几天开发Web系统的时候,发现IE对模态窗口支持不怎么友好,在模态窗口中的提交事件会引发再一次打开原来的页面。

    后来在网上找了一下,好一点的解决方法都是用Iframe框架来完成的。但是如果要打开多个模态页面的话,就可能要多个Iframe的框架页面。比较郁闷,不过后来想的了一个更好点的方法,只要用一个模态页面就全部搞定,呵呵,所以列出了给有同样需要的人参考。

    第一:新建一个Iframe的框架页面VGAMesosphere.aspx。

    前台代码:

     myOpen.returnValue=1

    View Code
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="VGAMesosphere.aspx.cs" Inherits="AssetSys_VGAMesosphere" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>KM_System</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="idDiv" runat="server">
        
        </div>
        </form>
    </body>
    </html>

    后台代码:

    View Code
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Text;
    
    public partial class AssetSys_VGAMesosphere : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string AllUrl = Request.RawUrl;
            int Indx = AllUrl.IndexOf('?');
            string url = AllUrl.Remove(0, Indx + 5);//获取最终要访问的模态页面地址
            StringBuilder Html = new StringBuilder();
            Html.Append("<iframe id='iframeTo' src='" + url + "' scrolling='auto' style='600px;height:450px'></iframe>");
            idDiv.InnerHtml = Html.ToString();
    
        }
    }

    在要打开模态页面的地方这样处理:首先让它访问中间页面,并将要打开的模态页面地址(包括它的参数)作为一个参数传给中间页面。这样就OK了。

    如:Response.Redirect("VGAMesosphere.aspx?url=../shishi.aspx?p1=laksdjf&p2=alskjdflalaks&p3=1233453");

     function OpenNewWindow(id) {
                myOpen = window.showModalDialog("VGAMesosphere.aspx?url=OpenCommentDtl.aspx?id=" + id, "", "dialogWidth=500px;dialogHeight=350px");
                //关闭模式窗口时刷新
                if (myOpen.returnValue = "1") {
                    window.location.reload();
                }

  • 相关阅读:
    f2fs源码解析(五) node管理结构梳理
    没有什么好神秘的: wait_on_page_bit
    write_back 浅浅分析
    f2fs解析(六)
    转载软件需求文档标准格式
    转载 如何设计一个优秀的数据库
    转载 MySQL创建表的语句 示例
    equals和==的区别 (Java基础)
    转载 【Linux】Linux中常用操作命令
    windows 注册表
  • 原文地址:https://www.cnblogs.com/wugang/p/2516823.html
Copyright © 2011-2022 走看看