在页面写入一个HTML文档

4 篇文章 0 订阅
1 篇文章 0 订阅

在页面写入一个HTML文档

业务场景:
后端接口返回一个支付的HTML文档   前端拿到数据后在页面把HTML文档渲染出来并支付

确认订单页,调支付接口

// 微信公众号支付
    async wxPayment() {
      // debugger
      const ua = window.navigator.userAgent.toLowerCase();
      if(ua.match(/MicroMessenger/i) == 'micromessenger'){ // 在微信浏览器打开
        this.$toast.loading('加载中...');
        let urls = window.location.href;
        //失败回调地址
        let failed = urls;
        //成功回调地址
        let success = window.location.href.split('/#/')[0].split('#')[0] + '#/'+'order?'; 
        await weixinPay(this.orderId,failed,success).then( res => {
        	if(res.data.error == '0000'){
        	  //接口返回的HTML文档
	          let htmls = res.data.datas; 
	          //将获取到的数据存到localStorage   供渲染页使用   
	          localStorage.removeItem('callbackHTML');
	          localStorage.setItem('callbackHTML',htmls); 
	          let urls = window.location.href.split('/#/')[0].split('#')[0] + '#/';
	          //页面跳转   也可以使用路由跳转  使用路由可以把参数放到路由里面   不必使用localStorage
	          window.location.href = urls + 'repeaterPay'; 
	        }
        }) 
        this.$toast.clear(); 
      }else{
        this.$toast.fail('请在微信中打开');
      }
    },

渲染接口返回的HTML文档
通过document.write()方法向页面写入一个HTML文档

<template>
  <div class="repeater"></div>
</template>

<script>
export default {
  data(){
    return{}
  },
  created() {
  },
  mounted(){
  	  //write() 方法可向文档写入 HTML 表达式或 JavaScript 代码
  	  //可列出多个参数(exp1,exp2,exp3,...) ,它们将按顺序被追加到文档中。
      setTimeout(() => {
          document.write(localStorage.getItem('callbackHTML'));
          document.close();
      },1000)
  },
  methods: {},
}
</script>

<style lang="scss" scoped>  
</style>

记录工作中遇见的业务场景以及解决方案

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值