gpt4 book ai didi

javascript - IE8 window.open 名称 - 不喜欢 JavaScript 编码?

转载 作者:行者123 更新时间:2023-11-29 22:38:21 24 4
gpt4 key购买 nike

我这样调用 window.open():

window.open('blank.html', 'New_Window\x3a_Jamie', 'width=800,height=800');

我在代码中所做的是获取窗口的名称,并使用 Microsoft Web Protection library 对其进行 JavaScript 编码。 .我还用下划线替换了空格,因为我读到 IE 不喜欢窗口名称中的空格。仅供引用,原始字符串是“New Window: Jamie”,看起来“:”被编码为“\x3a”。该窗口在 FireFox 中打开很好,但该窗口在 IE8 中无法打开。 IE8 只是不喜欢这种编码、字符还是什么? IE8 的窗口名称中可以出现哪些字符有什么规定吗?

最佳答案

Are there rules around what characters can appear in the window name for IE8?

是的。虽然似乎没有文档,但 IE 一直要求窗口名称由字母数字和下划线组成。不接受冒号,无论是否从编码的字符串文字中读取。

如果你真的需要将任意字符串映射到一个唯一的名称安全版本,你必须做一些事情,比如将每个非字母数字字符编码成一个转义序列,例如:

function encodeToName(s) {
return s.replace(/[^A-Za-z0-9]/g, function(match) {
var c= match[0].charCodeAt(0).toString(16);
return '_'+(new Array(5-c.length).join('0'))+c;
});
}

alert(encodeToName('New Window: Jamie'));
// 'New_0020Window_003A_0020Jamie'

虽然我同意卡萨布兰卡,但您实际上不太可能需要这样做。用户永远不会看到窗口名称,所以 w1 也一样好。很少需要窗口名称。

关于javascript - IE8 window.open 名称 - 不喜欢 JavaScript 编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4127660/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com