设置使用 window.open() 打开的空白页的哈希值
Set hash of blank page opened with window.open()
我有一个使用 javascript 的 window.open();
函数动态制作的页面。这将打开一个 URL 为 about:blank
的新窗口,然后将其余代码注入页面。我正在尝试检测用户是否刷新页面,然后在稍后的脚本中告诉打开器任务已完成(因此为什么此页面不是静态页面,它需要与另一个打开的选项卡通信)
问题是,似乎没有在URL的末尾设置哈希。我什至不确定是否可以这样做,因为它不是实际的 URL。
if (document.location.hash=="#one") {
alert('Good Job!')
} else {
document.onunload=function() {
window.location.href = window.location.href+encodeURIComponent("#one");
}
}
我之所以使用encodeURIComponent()
,是因为我在某处听说,在非字母数字的情况下这样做是一种很好的做法。我不确定这是问题所在,还是我应该使用href=#one
但似乎都不起作用。
有什么解决办法吗?
encodeURIComponent
将URL中具有特殊含义的字符(例如#
)转换为不具有该特殊含义的编码版本,因此这就是问题所在(因为您需要特殊含义"启动片段标识符")。
one
没有特殊字符,因此不需要编码。如果您正在接受输入并且不知道它是否包含特殊字符,那么您将从编码中排除 #。
window.location.href + "#" + encodeURIComponent(some_string_here);
相关文章:
- 在Javascript中实现对哈希值的暴力攻击
- 用户单击带有哈希值的链接以访问该页面,如果禁用Javascript会发生什么情况
- 要发送到控制器的 HREF 链接中的哈希值
- 使用 JavaScript 计算 Blob 的哈希值
- JavaScript 文件哈希值与文件的一部分一起生成
- JavaScript 隔离哈希值
- JavaScript 获取以前的哈希值
- 设置使用 window.open() 打开的空白页的哈希值
- Chrome 不返回哈希值
- Javascript 使用哈希值重新加载页面
- 为什么从其他网络返回会保留最后一个哈希值,同时显示第一个哈希值的内容
- 来自 Javascript 和 PHP 的不同哈希值
- 使用Javascript从url中获取空哈希值
- 如何使用JS重定向到具有哈希值的引用URL
- 单击一页滚动菜单时更改URL哈希值
- 是否可以在Mustache中基于哈希值切换模板部分
- 哈希值和后退/下一步按钮
- javascript哈希值验证
- 如何将哈希值转换为数组
- 如何获得新的哈希值的URL没有页面重新加载