设置用window.open()打开的空白页面的哈希

时间:2016-02-19 20:50:49

标签: javascript fragment-identifier

我有一个使用javascript的files: "/usr/local/etc/php/conf.d/project.ini": mode: "000644" owner: root group: root content: | opcache.validate_timestamps = off 函数动态制作的页面。这将打开一个URL为window.open();的新窗口,然后将其余代码注入页面。我正在尝试检测用户是否刷新页面,然后在稍后的脚本中告诉开启者任务已完成(因此该页面不是静态的,它需要与另一个打开的选项卡进行通信)< / p>

问题是,似乎没有在URL的末尾设置哈希值。我甚至不确定它是否可能这样做,因为它不是一个真正的URL。

about:blank

我曾经使用过if (document.location.hash=="#one") { alert('Good Job!') } else { document.onunload=function() { window.location.href = window.location.href+encodeURIComponent("#one"); } } ,因为我听说某个地方在非字母数字的情况下这样做很好。我不确定这是不是问题,或者我是否应该使用encodeURIComponent(),但似乎都不起作用。

任何解决方案?

1 个答案:

答案 0 :(得分:0)

encodeURIComponent将具有特殊含义的字符(例如#)转换为具有该特殊含义的编码版本,这就是问题所在(因为你需要特殊含义“启动片段标识符”)。

one没有特殊字符,因此不需要编码。如果您正在接受输入并且您不知道它是否包含特殊字符,那么您将从编码中排除#。

window.location.href + "#" + encodeURIComponent(some_string_here);