В современных браузерах и HTML5 существует метод, называемый pushState
в окне history
. Это изменит URL-адрес и перенесет его в историю без загрузки страницы.
Вы можете использовать ее следующим образом: она будет принимать 3 параметра: 1) объект состояния 2) название и URL-адрес):
window.history.pushState ({page: "another"}, "another page", "example.html");
Это изменит URL-адрес, но не перезагрузит страницу, также не проверяет, существует ли страница, поэтому, если у вас есть код javascript, который будет реагировать на URL-адрес, вы можете работать с
Также есть history.replaceState ()
, который делает точно то же самое, за исключением того, что он изменит текущую историю вместо создания новой!
Также вы можете создать функцию для проверки существования history.pushState, а затем продолжить с остальными:
function goTo (страница, заголовок, URL) {if (" undefined "! == typeof history.pushState) {history.pushState ({page: page}, title, url); } else {window.location.assign (url); }} goTo («другая страница», «пример», «example.html»);
Также вы можете изменить #
для браузеров & lt; HTML5
, которые не будут перезагружать страницу, таким образом Угловой
использовать SPA
в соответствии с hashtag ...
Изменение #
довольно легко, делая:
window.location.hash = "example";
, и вы можете обнаружить его следующим образом:
window.onhashchange = function () {console.log ("# changed", window.location. хэш); }
Нет, это невозможно. Также невозможно ограничить значения как перечисленные элементы. Например, в C # допускается следующее:
CopyFlags flags = (CopyFlags)358643;
Вы должны явно выполнить свою проверку внутри методов, которые включают параметр CopyFlags
.
Нет, это невозможно в контексте перечисления; вместо этого вам придется проверить его:
public void DoSomething(CopyFlag flag)
{
if (flag.HasFlag(CopyFlags.PropertiesOnly) && flag.HasFlag(CopyFlags.FieldsOnly))
throw new ArgumentException();
}
(flag & CopyFlags.PropertiesOnly) == CopyFlags.PropertiesOnly or (flag & CopyFlags.FieldOnly) == CopyFlags.FieldOnly
. Этот метод был ярлыком для этого.
– Brian Mains
28 August 2014 в 15:06