奇怪的窗户,打开的行为
Weird window.open behaviour
本文关键字:窗户 更新时间:2023-09-26
此代码在Chrome上的行为很有趣(此处为fiddle):
try {
open('6:-=');
} catch(e) {}
首先,尽管代码被包装在try-catch中,但还是抛出了一个错误:
无法打开URL为"%36:%04-="的窗口。
其次,在URL中插入无关字符,即%3
和%04
。
为什么try-catch不拦截错误,为什么URL有这些额外的字符?
try
/catch
没有任何效果,因为它不是例外。这只是一条打印到控制台的错误消息。你可以证明:
open('6:-=');
console.log(1); // logged as usual
基本上,这就像console.error()
也不会抛出异常,但它会向控制台打印一条类似异常的消息。
您的fiddle在冒号后面的6:-=
字符串中包含一个ASCII代码为4的不可打印字符,该字符在显示的错误中被URL编码为%04
。此外,所提供URL的6:
部分被解释为URL方案,不能以数字开头,因此显然Chrome URL也引用6作为%36
,尽管RFC没有规定这种行为。
首先:正如pimvdb所说,这是因为它实际上不是一个例外。
第二个:%04是由JSFiddle插入的不可见字符。%36是Chrome在为URL方案编码时转换为%36的数字6。更新的小提琴没有%04
相关文章:
- 奇怪的窗户,打开的行为
- 如何把我的盒子总是放在窗户中央
- 防止模型从窗户掉出去
- 获取其中骰子的总和'它自己的窗口.并不是所有的窗户
- 帆.js在窗户 8 上
- 窗户的替代方案是什么.IE 中的网址
- 打开和关闭带有关闭的窗户
- 关闭窗户并打开新窗口钛合金
- 为什么我的窗户一直没有缩小
- 我怎么能把窗户盖在格子板上
- 窗户的用途是什么.$在控制台中
- 窗户.负载不会着火
- 窗户尺寸因方向而异
- 打开和关闭钛合金窗户的正确方式
- 如何从父页获取属性值.我试着用开门器和窗户.但是没有;不起作用
- 我怎样才能用茉莉花中的窗户
- 为什么获胜'我的模态在窗户的死点开着
- 什么是窗户_jqjsp
- 保护窗户不被改动
- Tinymce:我该怎么检查窗户是否关上了