天天看點

vue中用iframe嵌套頁面,點選傳回實作真正的退回上一步功能

vue項目中需要嵌套第三方的頁面,但是第三方頁面中的網頁沒有傳回按鈕,如圖所示:此為頁面b,頁面a為跳到b頁面的前一個頁面。

vue中用iframe嵌套頁面,點選傳回實作真正的退回上一步功能

點選iframe嵌套頁面跳轉的第二個頁面

vue中用iframe嵌套頁面,點選傳回實作真正的退回上一步功能

要實作不管進入多少層iframe頁面,點選回退都直接跳到頁面a.

實作:

為了不影響路由判斷,使用回退的方法。

首先在進入頁面b時,記錄一下history.length,并把這個值賦給頁面的一個變量:

data () {
    return {
      para:{},
      htmlStr:'',
      htmlSrc:'',
      rlen:history.length,
    }
  },
  mounted () {
  },
  methods: {
    //傳回
    goBack () {
        let len = this.rlen - history.length - 1;//-1是不進入iframe頁面的下級頁面直接退出的話,執行後退一步的操作
        this.$router.go(len);
    },
  }
           

在點選傳回按鈕時,重新擷取一下history.length,并用剛進入b頁面記錄的值去減去最新的history.length,即可擷取到需要回退的步數。

注:history.length:浏覽器曆史清單中的元素數量