在新 window 中加载网页时全屏模式不起作用

Full Screen mode not working while loading the web page in a new window

我使用以下代码段从 A.aspx 网页移动到 B.aspx 网页,我需要在单独的 [=] 中以全屏模式加载 B.aspx 页面26=]。我可以在单独的 window 上加载内容,但无法全屏显示。 window 刚好出现在屏幕的一半

Response.Redirect("B.aspx", "", "fullscreen=yes");

我也用 ScriptManager 尝试过,但我又遇到了同样的问题。以下是代码段。

string url = "B.aspx";
ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "window.open(' " + url + "', '', 'fullscreen=yes,resizable=no,scrollbars=yes,toolbar=no,menubar=no,status=yes' );", true); 

我也尝试设置 window 的宽度和高度并得到相同的输出!

注意:问题出现在 Google Chrome 和 Microsoft Edge 浏览器上。当我 运行 Firefox 上的程序时,页面以全屏方式加载。这是浏览器问题还是有什么方法可以在与所有浏览器兼容的情况下实现这一点?

这里有几个错误和建议:

1) Response.Redirect()方法最多只接受2个参数,因此不能使用fullscreen=yes作为第三个参数。

2) fullscreen=yes 因为 window.open() 参数仅适用于 IE(和旧版 Firefox),但并非所有版本都受支持 (MDN reference)。您需要在目标页面上使用特定于浏览器的 API。

因此,如前所述,您应该根据客户端浏览器添加一个函数来调用全屏API:

function fullScreenMode(element) {
    if(element.requestFullscreen)
        element.requestFullscreen();
    else if(element.mozRequestFullScreen)
        element.mozRequestFullScreen();
    else if(element.webkitRequestFullscreen)
        element.webkitRequestFullscreen();
    else if(element.msRequestFullscreen)
        element.msRequestFullscreen();
}

然后像这样修改RegisterStartupScript

ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", 
              "window.open('" + url + @"', '', 'resizable=no,scrollbars=yes,toolbar=no,menubar=no,status=yes' );", true);

并在用户触发某些 DOM 事件时在目标页面上调用 fullScreenMode(document.documentElement) 函数,因为某些浏览器设置了限制以防止弹出 window 以类似于 window.open()函数。

相关问题:

How to open a web page automatically in full screen mode

Setting the whole window to be fullscreen in recent browsers