JavaScript: изменение href при выгрузке (или изменение location.href)

На нашем сайте есть несколько ссылок (и фрагментов javascript), которые содержат /2012/responses/{pathParams...}, и теперь мне нужно условно добавить путь, если это веб-просмотр.

if (isWebview) {
  // use '/2012/responses/webview/{pathParams...}'
} else {
  // use '/2012/responses/{pathParams...}'
}

Я могу обрабатывать ссылки, просматривая document.links, но мне интересно, есть ли способ обрабатывать фрагменты javascript, использующие window.location = '/2012/responses/...'. Один из способов заключается в создании функции, которая изменяет window.location и заменяет операторы window.location этой функцией. Но есть ли способ обработать это как событие, чтобы при изменении страницы я мог условно вставить /webview в URL-адрес? Ограничения браузера, по-видимому, ограничивают событие beforeunload только запросом пользователя.


person ravun    schedule 28.09.2012    source источник
comment
Ваш вопрос подразумевает, что у вас есть много несвязанных битов JavaScript, работающих отдельно и компенсирующих/исправляющих другие биты. Почему вы не объединили все это в единую связную функцию для обработки обновления URL (или href)?   -  person David says reinstate Monica    schedule 29.09.2012
comment
У @DavidThomas действительно есть решение.   -  person Jeremy J Starcher    schedule 29.09.2012


Ответы (1)


Я думаю, ты не можешь. У меня есть 2 варианта для вас:

Вариант 1:

Замените весь код, используя встроенный троичный код, если --> я рекомендую это

образец:

ищи:

    '/2012/responses/{pathParams...}'

заменить:

    '/2012/responses/'+((isWebView?)?'webview/':'')+'{pathParams...}'

Вариант 2:

Поместите /webView условно на на стороне сервера внутри переменной {pathParams...}

person falsarella    schedule 28.09.2012