收藏
回答

代码在开发者工具正常运行,到小程序体验版就报错undefined is not an object?

  1. 在开发者工具上,可以正常切割html,切割body,保留body以内的部分,再用rich-text富文本进行解析 即可显示,功能一切正常。

  2. 在手机上端就会报错,经调试发现 res.data是有值的,其为html的内容,数据类型是字符串,但是 var imgus = imgu.split('body'); 这一行代码, split() 函数实际上并没有执行,因为后面打印的split后面的内容imgus是只包含一个元素的数组,其值还是 之前的html数据 ,没有变。

  3. 但是在我的小程序的其他界面也用到过split()函数,在手机体验版上运行 并没有任何问题。因此想咨询一下 这下什么问题?是不是微信小程序体验版的bug?

    // pages/comment/newsDetail.js
    const tip = require('../../utils/tip.js');
    const api = require('../../utils/api.js');
    var WxParse = require('../../utils/wxParse/wxParse.js');
    var app = getApp()
    Page({
     
      /**
       * 页面的初始数据
       */
      data: {
        nodes: '',
        url: ''
      },
     
     
     
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: function (options) {
        console.log("测试11112222");
        //console.log(app.globalData.newsUrl);
        console.log(options.url);
     
         
     
          let that = this;
          that.setData({
            url: options.url
          })
          this.getNews();
           
         
      },
      //加载新闻
      getNews: function () {
        var that = this;
        console.log("22222222222222222222222222222");
        console.log(app.globalData.newsUrl);
     
        
        var successCallBack = function (res) {
           
          console.log(res);
          if (res.statusCode == '200') {
            console.log("执行200");
     
            console.log(res.data);
            
     
     
            var imgu = res.data;
             
            var imgus = imgu.split('body');
            console.log('imgus' + imgus);
            var cutUrl = imgus[1];
            console.log(cutUrl);
            var strFin = cutUrl.substr(1, cutUrl.length - 3);
            //console.log('url' + '1111111');
             
     
            that.setData({ nodes: cutUrl })
         
             
     
          } else {
            tip.Tips.error(res.data.rtnMsg);
          }
     
        };
     
        api.getNews({
          query: {
     
            url: that.data.url,
            no: "116",
            token: app.globalData.token
          },
          header: {
            'content-type': 'application/json;charset=UTF-8'
          },
          method: "POST",
          appid: this,
          successCallBack: successCallBack
        });
      },
     
      /**
       * 生命周期函数--监听页面初次渲染完成
       */
      onReady: function () {
     
      },
     
      /**
       * 生命周期函数--监听页面显示
       */
      onShow: function () {
     
      },
     
      /**
       * 生命周期函数--监听页面隐藏
       */
      onHide: function () {
     
      },
     
      /**
       * 生命周期函数--监听页面卸载
       */
      onUnload: function () {
     
      },
     
      /**
       * 页面相关事件处理函数--监听用户下拉动作
       */
      onPullDownRefresh: function () {
     
      },
     
      /**
       * 页面上拉触底事件的处理函数
       */
      onReachBottom: function () {
     
      },
     
      /**
       * 用户点击右上角分享
       */
      onShareAppMessage: function () {
     
      }
    })
最后一次编辑于  11-27
回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员-娇华
    社区技术运营专员-娇华
    11-28

    手机预览开发版是否正常呢?麻烦提供下能复现问题的代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html

    11-28
    赞同
    回复 4
    • Lucien
      Lucien
      11-28
      代码片段可以在手机体验版上运行吗?
      11-28
      回复
    • 社区技术运营专员-娇华
      社区技术运营专员-娇华
      11-28回复Lucien
      看下文档代码片段的介绍吧,代码片段可以在真机预览,导入代码片段的时候填写appid即可真机预览
      11-28
      回复
    • Lucien
      Lucien
      11-28回复社区技术运营专员-娇华
      手机预览时 错误就复现了,在开发者工具运行没问题
      11-28
      回复
    • Lucien
      Lucien
      11-28回复社区技术运营专员-娇华
      能不能帮忙看下 这是什么问题呢?
      11-28
      回复
  • Lucien
    Lucien
    11-28

    问题已经自己解决,是后端写html的时候默认是Unicode,改成UTF-8就可以了

    11-28
    赞同
    回复
问题标签