javascript - 如何处理 JavaScript 中变量的 Uncaught TypeError?
问题描述
我正在尝试使用下面给出的 JavaScript 代码多次打开一个选项卡。
function webAssign() {
let i;
let myWin;
for (i = 1; i < 4; i++) {
console.log(i);
myWin = window.open("index.html");
myWin.close();
}
}
运行此代码后,它会抛出下面给出的错误..
Uncaught TypeError: myWin is null
我怎么解决这个问题?
解决方案
返回值
一个 WindowProxy 对象,它基本上是代表新创建的窗口的 Window 对象的一个瘦包装器,并且具有所有可用的功能。如果无法打开窗口,则返回值为
null
.
(我的重点)
有些上下文(您的代码可能正在运行的环境)无法打开窗口,或者无法打开特定来源的窗口。在这些情况下,window.open
返回null
. 例如,这里的 Stack Snippets 功能不允许window.open
:
function webAssign() {
let i;
let myWin;
for (i = 1; i < 4; i++) {
console.log(i);
myWin = window.open("index.html");
myWin.close();
}
}
webAssign();
在 Chrome 上运行会出现错误(在 Web 控制台中):
阻止在新窗口中打开“https://stacksnippets.net/index.html”,因为请求是在未设置“allow-popups”权限的沙盒框架中发出的。
但除此之外,在一个紧密的循环中打开和立即关闭窗口并没有任何意义。
推荐阅读
- php - Debian/Stable (Buster) 系统上的 php (php-mime-mail) 设置
- python - 从长字符串中删除任何出现的“(...)”,其中“...”可以是任何东西
- django - Django 单元测试因唯一约束而失败
- javascript - Nodejs安全问题客户端发送请求
- javascript - 使用 JS 和 Google Apps 脚本获取 CORS
- javascript - nodejs中的api请求连接问题
- android - 是否可以使用 Google / Android Pay 以外的支付平台(订阅)?
- c - 在函数中使用 scanf 传递字符串变量
- python - 尝试中的奇怪行为..除了
- java - 使用 apache httpclient 接收“SLF4J”日志消息