You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用requestFullscreen打开链接全屏仅黑屏,问题排查求助

问题:点击按钮打开链接全屏后出现黑屏

我尝试实现点击按钮打开链接全屏的功能,参考requestFullscreen示例编写了如下代码,执行后仅出现黑屏窗口,请问问题出在哪里?

原代码

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>

<button onclick="openFullscreen();">Open Link in Fullscreen Mode</button>

<a href="https://www.yahoo.com" id="mypagelink"></a>

</body>
</html>

<script>
var elem = document.getElementById("mypagelink");

function openFullscreen() {
  if (elem.requestFullscreen) {
    elem.requestFullscreen();
  } else if (elem.webkitRequestFullscreen) { /* Safari */
    elem.webkitRequestFullscreen();
  } else if (elem.msRequestFullscreen) { /* IE11 */
    elem.msRequestFullscreen();
  }
}
</script>

问题原因

你当前的代码存在两个核心问题:

  • 目标元素是空的<a>标签,它本身没有任何可视化内容,调用全屏API后自然显示黑屏
  • <a>标签仅作为链接跳转的标记,不会自动加载并展示目标URL的页面内容

解决方法

改用<iframe>加载目标页面,再对这个<iframe>调用全屏API,修改后的代码如下:

<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
  iframe {
    width: 100%;
    height: 100vh;
    border: none;
  }
</style>
</head>
<body>

<button onclick="openFullscreen();">Open Link in Fullscreen Mode</button>

<iframe src="https://www.yahoo.com" id="targetFrame"></iframe>

</body>
</html>

<script>
var elem = document.getElementById("targetFrame");

function openFullscreen() {
  if (elem.requestFullscreen) {
    elem.requestFullscreen();
  } else if (elem.webkitRequestFullscreen) { /* Safari */
    elem.webkitRequestFullscreen();
  } else if (elem.msRequestFullscreen) { /* IE11 */
    elem.msRequestFullscreen();
  }
}
</script>

说明

  • 用<iframe>替代<a>标签,通过src属性直接加载目标页面
  • 给<iframe>设置样式,确保它默认占满视口空间,全屏时能铺满整个屏幕
  • 保留原有的全屏兼容逻辑,对<iframe>元素执行全屏请求

内容的提问来源于stack exchange,提问作者Toshi W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 00:13:20