2016-02-19 2 views
0

У меня есть страница, которая была динамически сделана с использованием функции javascript window.open();. Это откроет новое окно с URL-адресом about:blank, а затем я добавлю остальную часть кода на страницу. Я пытаюсь определить, обновит ли пользователь страницу, а затем в более позднем сценарии, сообщит открывшему, что задача была завершена (поэтому эта страница не является статической, ей необходимо установить связь с другой открытой вкладкой)Установить хеш пустой страницы, открытой с помощью window.open()

Проблема в том, что, похоже, не задается хэш в конце 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, но ни один из них не работал.

Любые решения?

ответ

0

encodeURIComponent преобразует символы со специальным значением в URL (например, #) в закодированные версии, сделать не иметь, что особое значение, так что это проблема (потому что вам нужно специальное значение «начинается идентификатор фрагмента»).

one не имеет специальных символов, поэтому он не требует кодирования. Если вы принимали входные данные, и вы не знали, содержат ли они специальные символы, вы исключаете # из кодировки.

window.location.href + "#" + encodeURIComponent(some_string_here); 
Смежные вопросы