在弹出窗口中隐藏地址栏

时间:2010-11-22 07:52:28

标签: c# javascript asp.net popup address-bar

网络应用程序,我在其中使用一些弹出窗口打开一些页面。为此,我正在使用像这样的方法

private void OpenWindow(string Url, string height, string Width)
{
    try
    {
        string strScript = "";
        strScript += "<script language=\"javascript\">";
        strScript += "eval(\"popUpWindow('" + Url + "',0,0," + Width + "," + height + ",directories=no)\");";
        strScript += "</script>";
        lblScript.Text = strScript;
    }
    catch (Exception ex)
    {
        LogError.Log(ex);
        throw;
    }
}

JavaScript函数如下:

var popUpWin = 0;

function popUpWindow(URLStr, left, top, width, height, windowName) {
    left = (screen.width / 2) - width / 2;
    top = (screen.height / 2) - height / 2;
    if (popUpWin) {
        if (!popUpWin.closed)
            popUpWin.close();
    }
    popUpWin = open(URLStr, windowName, 'toolbar=no,location=no,directories=no,status=no,menub ar=no,scrollbar=no,resizable=no,copyhistory=yes,width=' + width + ',height=' + height + ',left=' + left + ', top=' + top + ',screenX=' + left + ',screenY=' + top + '');
    popUpWin.focus();
}

现在它显示地址栏的工作正常。但我的要求是我必须在所有弹出窗口中隐藏地址栏。这可能吗?请提供一个解决方案帮助。感谢davance ..

3 个答案:

答案 0 :(得分:2)

不,这是不可能的。 IIRC在IE 6中引入了安全功能。

以下是一些早期的讨论:

How can I hide the address bar in a modal dialog?
Can't hide status bar when doing windows.open on IE8
Popup window, how to Hide URL bar in IE8

答案 1 :(得分:1)

这取决于您尝试使用的浏览器。

较旧的浏览器会允许这样做,但是现在有一天,更多次,浏览器会继续显示地址栏。其中一个原因是让用户认为你正在展示一个真正的应用程序(病毒扫描程序?!?)而不是网站更加困难。

答案 2 :(得分:1)

无论如何使用System.Text.StringBuilder而不是字符串连接。

var sb = new StringBuilder();
sb.Append("<script language=\"javascript\">");
sb.AppendFormat("eval(\"popUpWindow('{0}',0,0,{1},{2},directories=no)\");", url, width, height);
sb.Append("</script>");
lblScript.Text = sb.ToString();