2016-12-26 4 views
0

Мне нужно сделать модификацию целого window.location (весь маршрут), не обновляя что-то похожее на history.pushState, но я не нахожу жизнеспособного способа сделать это.Возможно ли изменить содержимое окна.location без перенаправления страницы?

Я попытался внести изменения с помощью definegetter, но поэтому я наблюдаю, что эта функция служит только для параметров типа документа. Можно ли изменить параметр местоположения с помощью javascript?

+1

Даже если английский не является вашим родным языком, ваш вопрос заслуживает совсем немного больше внимания к пунктуации и грамматики, чтобы стать понятным. – jcaron

ответ

1

К сожалению, не существует способа использовать window.location так, как вы надеялись.

Изменение URL страницы приведет к тому, что браузер выдаст новый запрос.

Самый распространенный подход, используемый для вашего сервера, вместо этого предварительно подготовить URL-адрес, используя что-то вроде URL Rewrite for IIS, если вы хотите иметь некоторую настройку.

1

Вы бы использовали window.location.hash и параметры хеша, такие как your-page?#id=1,user=gabriel. Имейте в виду, что window.location.hash - это простой текст. Чтобы изменить его часть, вам нужно проанализировать его, изменить значение, и подставить обратно.

Кроме того, вы можете делать такие вещи, когда изменить параметры хеш:

window.addEventListener("hashchange", function() { 
    // Do stuff here whenever hash changes 
});