美文网首页
vue2.0打开第三方页面

vue2.0打开第三方页面

作者: 简小咖 | 来源:发表于2018-09-26 16:33 被阅读0次

    场景是酱婶的:
    vue页面提交数据后走第三方接口,返回的数据是一个html页面,页面上有一个隐藏的form,和隐藏的js,js中有window.onload自动提交表单,打开第三方的另一个页面。
    我们要做的是解析返回的html数据,并弹出第三方的页面。
    尝试了很多方法,因为vue一次性加载解析数据之后,不能解析js中的window.onload。于是我发返回的数据,自己截取了其中form,用vue的方法重新写了onload,就加载了。方法如下:

    接口返回的html数据

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title></title>
     <script src="第三方地址"></script> </head> 
    <body> 
    <form action="。。。。。(第三方地址)" method="post" id="autoForm"> 
    <input type="hidden" name="corpRegKey" value="。。。。。。信息"> 
    <input type="hidden" name="CLType" value="。。。。。。信息"> <input type="hidden" name="corpName" value="名称"> 
    <input type="hidden" name="reqSource" value="0"> </form> 
    </body> 
    <script type="text/javascript"> 
    window.onload=function(){ document.getElementById("autoForm").submit(); } 
    </script> 
    </html>
    

    以上是第三方返回数据,有保密信息用。。。省略了,这段里主要用的是form和js

    js

      data() {
           bankHTML: ''
         },
      methods: {
        open() {
                  var str = 'HTML返回数据'
                  var start = '<body>'
                  var end = '</body>'
                  var s = str.indexOf(start) + start.length
                  var e = str.indexOf(end)
                  this.bankHTML = str.substring(s, e)
                  // 截取body中的form部分,返回传到页面上bankHTML,让页面解析
                  this.$nextTick(function() {
                 //必须用nextTick,让页面解析form之后再执行下面的程序
                    if (document.getElementById('autoForm')) {
                      document.getElementById('autoForm').target = '_blank'
                      document.getElementById('autoForm').submit()
                 //用document找到form,然后用_blank打开新页面,提交表单
                    }
                  })
         }
    }
    

    html

    v-html解析html

       <div v-html="bankHTML"></div>
    

    相关文章

      网友评论

          本文标题:vue2.0打开第三方页面

          本文链接:https://www.haomeiwen.com/subject/frqjoftx.html