我使用以下代码段从A.aspx网页移动到B.aspx网页,并且需要在单独的窗口中以全屏模式加载B.aspx页面。我能够将内容加载到单独的窗口中,但无法使其全屏显示。窗口仅出现在屏幕的一半
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);
我还尝试设置窗口的宽度和高度,并获得相同的输出!
注意:该问题在Google Chrome和Microsoft Edge浏览器上发生。当我在Firefox上运行该程序时,页面全屏加载。这是浏览器问题,还是可以通过与所有浏览器兼容的方法来实现?
答案 0 :(得分:1)
这里有一些错误和建议:
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.open()
函数的方式设置了限制以防止弹出窗口滥用。
相关问题:
How to open a web page automatically in full screen mode
Setting the whole window to be fullscreen in recent browsers