Mat*_*cki 8 javascript safari macos browser-history ios
在 Safari 中,当replaceState 调用超过 100 次时,会抛出:
SecurityError:DOM 异常 18:尝试突破用户代理的安全策略。
更多信息: https: //forums.developer.apple.com/thread/36650
我的问题是,在某些特定条件下,我会在用户滚动时更改 URL(使用 )$(window).scroll(function() {...。正如您可能猜到的那样,我在不到 2 秒的时间内达到了 100 的限制。
history.replaceState({}, '', newStringWithURLToUpdateInClientBrowser);
有什么解决方法吗?现有的允许管理的库history可以解决这个问题吗?
所有其他浏览器都不受此问题的影响。只有Webkit。这是查看错误的小提琴: https: //jsfiddle.net/j1sxxLwy/
在 Chrome 中它将达到 100,但请尝试在 Safari 中运行它。
您是否考虑过限制滚动事件?
例如:
var timer = null;
$( window ).scroll( function() {
clearTimeout( timer );
timer = setTimeout( function() {
history.replaceState( {}, '', newStringWithURLToUpdateInClientBrowser );
}, 1000 );
} );
Run Code Online (Sandbox Code Playgroud)
干杯,拉乌尔
| 归档时间: |
|
| 查看次数: |
6623 次 |
| 最近记录: |