1

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

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();
}

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

4

3 回答 3

2

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

以下是一些较早的讨论:

如何在模式对话框中隐藏地址栏?
在 IE8 弹出窗口上执行 windows.open 时无法隐藏状态栏
,如何在 IE8 中隐藏 URL 栏

于 2010-11-22T08:09:45.300 回答
1

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

较旧的浏览器将允许这样做,但现在,浏览器将继续显示地址栏。这样做的原因之一是让用户更难认为您正在展示一个真实的应用程序(病毒扫描程序?!?)而不是网站。

于 2010-11-22T07:55:12.833 回答
0

无论如何使用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();
于 2010-11-22T08:06:44.333 回答