• vue中iframe传参/绕过跨域/绕过src不刷新问题解决


    前言​

    欢迎大家来到我的博客,请各位看客们点赞、收藏、关注三连!

    欢迎大家关注我的知识库,Java之从零开始·语雀

    你的关注就是我前进的动力!

    CSDN专注于问题解决的博客记录,语雀专注于知识的收集与汇总,包括分享前沿技术。

    正文

    首先,有一个需求,就是嵌套一个页面,但是这个页面会根据几个条件传参。
    举例:http://ip:80/myApp/#/xxYw?xzqdm=3102931&zjdm=3102931231
    xzqdm:行政区代码(可选),
    zjdm:镇级代码(可选)
    这个时候,我们直接使用iframe,页面是直接展示的。
    因为这个展示的页面,并不在我的手里,即无法提需求,也没办法改动嵌套页面的代码。
    后面百度或谷歌了多种方案,都无法实现这个需求。

    但经过我的思考,既然都可以直接展示了,那我来一手,先删dom,在追加dom,不就ok!

    有思路,就立马行动。

    <template>
      <div>
      	<div>
      		
      		<Search @ontopfunction="ontopfunction" />
      	div>
        <div id="doc">div>
      div>
    template>
    
    <script>
    export default {
      props: {
      },
      data() {
        return {
        }
      },
      mounted() {
        let doc = document.getElementById('doc')
        this.createIframe(doc, 'http://ip:80/myApp/#/')
      },
      methods: {
        ontopfunction(data, json) {
          let arr = {
            xzqdm: this.xzdm,
            zjzzdm: data.parameter.xz,
            cjzzdm: data.parameter.cwh,
            cmxzdm: data.parameter.cxz
          }
          let url = '';
          for (let i in arr) {
            if (arr[i] || '') {
              url += "&" + i + "=" + arr[i];
            }
          }
          debugger
          const urlSrc = "http://ip:80/myApp/#/?" + url + `&time=${new Date().getTime()}`
          let doc = document.getElementById('doc')
          this.deleteIframe(doc)
          this.createIframe(doc, urlSrc)
        },
        createIframe(dom, src) {
          //在document中创建iframe
          var iframe = document.createElement("iframe");
          //设置iframe的样式
          iframe.style.width = "100%";
          iframe.style.height = "800px";
          iframe.style.margin = "0";
          iframe.style.padding = "0";
          iframe.style.overflow = "hidden";
          iframe.style.border = "none";
    
          iframe.src = src;
          //把iframe载入到dom以下
          dom.appendChild(iframe);
          return iframe;
        },
        deleteIframe(dom) {
          dom.removeChild(dom.childNodes[0]);
        }
      }
    }
    script>
    
    <style scoped>
    
    style>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68

    就这样,成功解决了该死的传参问题。

  • 相关阅读:
    数据通信网络基础
    用亚马逊自养号进行测评的好处
    Nginx 出现403 Forbidden 的几种解决方案
    数据结构:堆的简单介绍
    概率论的学习和整理--番外5:等差数列,等比数列求和,以及其他数列之和。
    PL/SQL工具下载地址
    百度发布文心大模型4.0,百度搜索实现重构;AI报告2023
    CSS 笔记(十三):常用单位 & 适配方案(移动端)
    python GUI入门(一入门介绍)
    web前端面试高频考点——Vue面试题
  • 原文地址:https://blog.csdn.net/qq_41520636/article/details/125993103