В Safari, когда replaceState
will be called more than 100 times, он будет бросать:OS X и IOS Safari history.replaceState ограничения бросков SecurityError: DOM Exception 18
SecurityError: DOM Exception 18: An attempt was made to break through the security policy of the user agent.
Подробнее: https://forums.developer.apple.com/thread/36650
Моя проблема заключается в том, что на некоторых конкретных условия Я изменяю URL-адрес при прокрутке пользователя (используя $(window).scroll(function() {...
. Как вы можете догадаться, я достигаю предела 100 менее чем за 2 секунды.
history.replaceState({}, '', newStringWithURLToUpdateInClientBrowser);
Есть ли обходной путь для этого? Могут ли существующие библиотеки, позволяющие управлять history
, решить эту проблему?
Все другие браузеры не подвержены этой проблеме. Только Webkit. Вот скрипка, чтобы увидеть ошибку: https://jsfiddle.net/j1sxxLwy/
В Chrome он достигнет 100, но попробуйте запустить его в Safari.