解决 vue-router 内嵌 iframe,导致 go(n) 异常问题

问题描述

业务需求,需要内嵌 iframe 预览一些信息,选中某些,则替换 iframesrc。变更 2 次后,发现 go(-1)回退异常,变成 iframe 内容回退了。

复现链接:http://jsbin.com/hikorawipa/edit?html,output

问题关键就是:

  • 更改 iframesrc 超过两次,并加载完成

问题结果就是:

  • go(-1) 会先回退 iframe 的内容

解决方式

第一反应,这特么是 bug 啊,于是给 vue-router 提了个 issue
其实搜索发现,之前也有人提过,只是提的不规范直接被 closed
等了两天人家回复,这不是 bug ,这是浏览器特性使然...卧槽,好尴尬 = =|||

  • html:
    
    
  • js
    set(src) {
      this.$refs.iframe.contentWindow.location.replace(src)
    }
    

总结

感觉就是别人帮我解决了一个属于我项目的 bug,~~///(^v^)\~~

参考

  • stackoverflow modify-iframe-src-without-entry-to-history-object
  • vue-router issues#1917

—— 2017/12/04 By Live, cloudy.

你可能感兴趣的:(解决 vue-router 内嵌 iframe,导致 go(n) 异常问题)