我在处理网络项目时遇到浏览器历史记录问题。
我的页面中有一个iframe,我会使用Javascript更改其src
值。
整个过程工作得很好,除了这个src的更改会影响浏览器的历史记录。
当我更改iframe网址时,我不想推送浏览器历史记录。 我希望用户离开整个基页并在点击后退按钮时转到上一个位置,而不是仅仅返回更改后的iframe。
我尝试过的事情:
src
值replaceWith()
方法iframe.contentWindow.location.replace()
替换iframe位置上述两种方法与仅在Safari浏览器上直接更改src
无异。后退按钮仍然受到影响。
Haven尚未在其他浏览器上进行测试,但我认为其他webkit浏览器是相同的。
答案 0 :(得分:1)
我认为您的代码中还有其他内容我们没有看到,因为.contentWindow.location.replace在我的测试中有效。
https://codepen.io/tmdesigned/pen/WJEqON
我也尝试在codePen之外的空白html页面上,认为codepen编辑器正在影响结果。它继续工作。
我已将其粘贴为代码下方的代码段,但我不认为SO允许iFrame工作。
mx.model.FeedForward.create
$( 'html' ).on( 'click', '.change-iframe', function() {
$( '#dynamic-iframe' )[0].contentWindow.location.replace( $( this ).data( 'src' ) );
});