如果没有特别需求 官方的 rich-text 足够你使用了。如果只有一张图片看下是不是content的css样式是否限高了。
这里面有多张图片,为啥只显示一张?[图片] js文件 const util = require('../../../../utils/util.js'); var WxParse = require('../../../../vendor/wxParse/wxParse.js'); //获取应用实例 var app = getApp() Page({ data: { // 网站全局配置 webconfig: [], // 小程序config配置 config: util.config, post: {}, title: ''//关于我们 }, onLoad: function () { var that = this; // 获取网站配置信息 util.AJAX("/GetData/index", function (res) { //正确获取数据 if(res.data.code==0){ var webconfig = []; var len = res.data.data.length; for(var i=0;i { wx.showToast({ title: '转发成功', duration: 1500, }); } } }, //用户点击右上角分享朋友圈 onShareTimeline: function () { var that = this; var id = this.options.id; //data,return 数据id var title=this.options.title; //data,return 数据title return { title: title || '', query: 'id=' + id, imageUrl: '', } }, }) 引用的文件: <view class="box content mb10"> <template is="wxParse" data="{{wxParseData:article.nodes}}"/> </view> wxParse.wxml文件 <!--** * author: Di (微信小程序开发工程师) * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) * 垂直微信小程序开发交流社区 * * github地址: https://github.com/icindy/wxParse * * for: 微信小程序富文本解析 * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 */--> <!--基础元素--> <template name="wxParseVideo"> <!--增加video标签支持,并循环添加--> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <video class="{{item.classStr}} wxParse-{{item.tag}}-video" src="{{item.attr.src}}"></video> </view> </template> <template name="wxParseImg"> <image class="{{item.classStr}} wxParse-{{item.tag}}" data-from="{{item.from}}" data-src="{{item.attr.src}}" data-idx="{{item.imgIndex}}" src="{{item.attr.src}}" mode="aspectFit" bindload="wxParseImgLoad" bindtap="wxParseImgTap" mode="widthFix" style="width:{{item.width}}px;" /> </template> <template name="WxEmojiView"> <view class="WxEmojiView wxParse-inline" style="{{item.styleStr}}"> <block wx:for="{{item.textArray}}" wx:key=""> <block class="{{item.text == '\\n' ? 'wxParse-hide':''}}" wx:if="{{item.node == 'text'}}">{{item.text}}</block> <block wx:elif="{{item.node == 'element'}}"> <image class="wxEmoji" src="{{item.baseSrc}}{{item.text}}" /> </block> </block> </view> </template> <template name="WxParseBr"> <text>\n</text> </template> <!--入口模版--> <template name="wxParse"> <block wx:for="{{wxParseData}}" wx:key=""> <template is="wxParse0" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse0"> <!--<template is="wxParse1" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'table'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse1" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse1"> <!--<template is="wxParse2" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse2" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse2" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse2" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse2" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse2" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse2"> <!--<template is="wxParse3" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse3" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse3" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse3" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse3" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse3" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse3"> <!--<template is="wxParse4" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse4" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse4" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse4" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse4" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse4" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse4"> <!--<template is="wxParse5" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse5" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse5" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse5" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse5" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse5" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse5"> <!--<template is="wxParse6" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse6" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse6" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse6" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse6" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse6" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse6"> <!--<template is="wxParse7" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse7" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse7" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse7" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse7" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse7" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse7"> <!--<template is="wxParse8" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse8" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse8" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse8" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse8" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse8" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse8"> <!--<template is="wxParse9" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse9" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse9" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse9" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse9" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse9" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse9"> <!--<template is="wxParse10" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse10" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse10" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse10" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse10" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse10" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse10"> <!--<template is="wxParse11" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse11" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse11" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse11" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse11" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse11" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> <!--循环模版--> <template name="wxParse11"> <!--<template is="wxParse12" data="{{item}}" />--> <!--判断是否是标签节点--> <block wx:if="{{item.node == 'element'}}"> <block wx:if="{{item.tag == 'button'}}"> <button type="default" size="mini"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse12" data="{{item}}" /> </block> </button> </block> <!--li类型--> <block wx:elif="{{item.tag == 'li'}}"> <view class="{{item.classStr}} wxParse-li" style="{{item.styleStr}}"> <view class="{{item.classStr}} wxParse-li-inner"> <view class="{{item.classStr}} wxParse-li-text"> <view class="{{item.classStr}} wxParse-li-circle"></view> </view> <view class="{{item.classStr}} wxParse-li-text"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse12" data="{{item}}" /> </block> </view> </view> </view> </block> <!--video类型--> <block wx:elif="{{item.tag == 'video'}}"> <template is="wxParseVideo" data="{{item}}" /> </block> <!--img类型--> <block wx:elif="{{item.tag == 'img'}}"> <template is="wxParseImg" data="{{item}}" /> </block> <!--a类型--> <block wx:elif="{{item.tag == 'a'}}"> <view bindtap="wxParseTagATap" class="wxParse-inline {{item.classStr}} wxParse-{{item.tag}}" data-src="{{item.attr.href}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse12" data="{{item}}" /> </block> </view> </block> <block wx:elif="{{item.tag == 'br'}}"> <template is="WxParseBr"></template> </block> <!--其他块级标签--> <block wx:elif="{{item.tagType == 'block'}}"> <view class="{{item.classStr}} wxParse-{{item.tag}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse12" data="{{item}}" /> </block> </view> </block> <!--内联标签--> <view wx:else class="{{item.classStr}} wxParse-{{item.tag}} wxParse-{{item.tagType}}" style="{{item.styleStr}}"> <block wx:for="{{item.nodes}}" wx:for-item="item" wx:key=""> <template is="wxParse12" data="{{item}}" /> </block> </view> </block> <!--判断是否是文本节点--> <block wx:elif="{{item.node == 'text'}}"> <!--如果是,直接进行--> <template is="WxEmojiView" data="{{item}}" /> </block> </template> wxParse.js文件 /** * author: Di (微信小程序开发工程师) * organization: WeAppDev(微信小程序开发论坛)(http://weappdev.com) * 垂直微信小程序开发交流社区 * * github地址: https://github.com/icindy/wxParse * * for: 微信小程序富文本解析 * detail : http://weappdev.com/t/wxparse-alpha0-1-html-markdown/184 */ /** * utils函数引入 **/ import showdown from './showdown.js'; import HtmlToJson from './html2json.js'; /** * 配置及公有属性 **/ var realWindowWidth = 0; var realWindowHeight = 0; wx.getSystemInfo({ success: function (res) { realWindowWidth = res.windowWidth realWindowHeight = res.windowHeight } }) /** * 主函数入口区 **/ function wxParse(bindName = 'wxParseData', type='html', data='数据不能为空', target,imagePadding) { var that = target; var transData = {};//存放转化后的数据 if (type == 'html') { transData = HtmlToJson.html2json(data, bindName); console.log(JSON.stringify(transData, ' ', ' ')); } else if (type == 'md' || type == 'markdown') { var converter = new showdown.Converter(); var html = converter.makeHtml(data); transData = HtmlToJson.html2json(html, bindName); console.log(JSON.stringify(transData, ' ', ' ')); } transData.view = {}; transData.view.imagePadding = 0; if(typeof(imagePadding) != 'undefined'){ transData.view.imagePadding = imagePadding } var bindData = {}; bindData[bindName] = transData; that.setData(bindData) that.wxParseImgLoad = wxParseImgLoad; that.wxParseImgTap = wxParseImgTap; } // 图片点击事件 function wxParseImgTap(e) { var that = this; var nowImgUrl = e.target.dataset.src; var tagFrom = e.target.dataset.from; if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) { wx.previewImage({ current: nowImgUrl, // 当前显示图片的http链接 urls: that.data[tagFrom].imageUrls // 需要预览的图片http链接列表 }) } } /** * 图片视觉宽高计算函数区 **/ function wxParseImgLoad(e) { var that = this; var tagFrom = e.target.dataset.from; var idx = e.target.dataset.idx; if (typeof (tagFrom) != 'undefined' && tagFrom.length > 0) { calMoreImageInfo(e, idx, that, tagFrom) } } // 假循环获取计算图片视觉最佳宽高 function calMoreImageInfo(e, idx, that, bindName) { var temData = that.data[bindName]; if (!temData || temData.images.length == 0) { return; } var temImages = temData.images; //因为无法获取view宽度 需要自定义padding进行计算,稍后处理 var recal = wxAutoImageCal(e.detail.width, e.detail.height,that,bindName); // temImages[idx].width = recal.imageWidth; // temImages[idx].height = recal.imageheight; // temData.images = temImages; // var bindData = {}; // bindData[bindName] = temData; // that.setData(bindData); var index = temImages[idx].index var key = `${bindName}` for (var i of index.split('.')) key+=`.nodes[${i}]` var keyW = key + '.width' var keyH = key + '.height' that.setData({ [keyW]: recal.imageWidth, [keyH]: recal.imageheight, }) } // 计算视觉优先的图片宽高 function wxAutoImageCal(originalWidth, originalHeight,that,bindName) { //获取图片的原始长宽 var windowWidth = 0, windowHeight = 0; var autoWidth = 0, autoHeight = 0; var results = {}; var padding = that.data[bindName].view.imagePadding; windowWidth = realWindowWidth-2*padding; windowHeight = realWindowHeight; //判断按照那种方式进行缩放 // console.log("windowWidth" + windowWidth); if (originalWidth > windowWidth) {//在图片width大于手机屏幕width时候 autoWidth = windowWidth; // console.log("autoWidth" + autoWidth); autoHeight = (autoWidth * originalHeight) / originalWidth; // console.log("autoHeight" + autoHeight); results.imageWidth = autoWidth; results.imageheight = autoHeight; } else {//否则展示原来的数据 results.imageWidth = originalWidth; results.imageheight = originalHeight; } return results; } function wxParseTemArray(temArrayName,bindNameReg,total,that){ var array = []; var temData = that.data; var obj = null; for(var i = 0; i < total; i++){ var simArr = temData[bindNameReg+i].nodes; array.push(simArr); } temArrayName = temArrayName || 'wxParseTemArray'; obj = JSON.parse('{"'+ temArrayName +'":""}'); obj[temArrayName] = array; that.setData(obj); } /** * 配置emojis * */ function emojisInit(reg='',baseSrc="/wxParse/emojis/",emojis){ HtmlToJson.emojisInit(reg,baseSrc,emojis); } module.exports = { wxParse: wxParse, wxParseTemArray:wxParseTemArray, emojisInit:emojisInit }
2022-01-30隐藏掉原生的,自己写。
小程序可以写两个tabBar吗?想做成一上一下的那种
2022-01-30正常 开发者工具挺耗CPU的,这个历史遗留问题一直存在。特别是你小程序内开了插屏、激励视频等广告并且带有前置加载的功能,那IDE会进一步卡到你无法想象。唯一的解决办法就是电脑配置高一些,不要多开IDE。。。
卡死了?win10系统,最新版本
2022-01-02看下请求的域名证书是否有问题,有时候有的域名证书再苹果手机上也是有影响的。
模拟器正常,安卓手机显示也正常,iPhone上却白屏?开发工具版本号1.05.2111300[图片]
2022-01-02官方说了 我就扣你的 你能怎么地 平时反正也没少扣
流量主”偷吃“行为,实在不解?请官方做出解释,流量主的收入推送每次都是大概早上7点的时候就可以通过公众号查询到,为什么每隔几天就会出现数据延迟出现, 最可怕的是每次延迟出现都经常会伴随着 广告收入变少了 请不要再用cpm来忽悠开发者。 这个也太明显了。 我们元旦节的数据,1.1号的数据 比 12.31号的数据整体高了 20%以上。 然后各个账号加起来的广告收入反而掉了20%+, 这是cpm下降 ? 今天刷了好久收入数据一直未能看到,就有不详的预感,又搞鬼,果然打开看了下,元旦节的收入比前一天不增反而降了20%。 对比我们之前的节日数据、还有元旦当天的使用用户,这些都是增加的,真的完全也说不通。 为什么每次延迟数据都伴随着 广告收入变少!!! 这种情况不止一次出现! 这个真的太假了!,请官方人员给与说明
2022-01-02开发者工具什么时候能不费CPU????其他都是浮云,我这外星人都扛不住打开三个微信开发者工具。。。。。。
Hi 开发者,听说你对周期性更新有需求?有奖调研等你来戳[图片] 为了提升小程序在弱网环境下的可用性,微信团队推出「周期性更新」能力,加快小程序渲染页面的时间,减少用户等待时间。 现邀请各位开发者参与「周期性更新使用情况有奖调研」,畅所欲言,让我们更了解你的需求和建议。 在问卷停止收集后,微信团队将从有效问卷中随机抽取 10 位参与者送出微信官方周边礼物,突出贡献回答者更有机会获得特别礼物。 [图片] * 图片仅供参考,实际奖品选择与发放将视官方周边更新与存货情况进行适当调整 参与方式:即日起至 2022 年 1 月 7 日 0点,点击 小程序周期性更新使用情况调查问卷 或者扫码下方小程序码进行填写。 [图片] * 获奖名单将在「微信开发者」公众号进行公示 如有其他小程序开发相关的问题,可在 微信开放社区小程序交流专区 发帖互动,技术专员将为大家解答及进行深度交流。
2022-01-02这个问题应该不存在,因为我那个相册的应用用了好久了也没出现过。自己还是好好检查检查吧。
公众号js-sdk上传图片接口有问题,每次返回的serverid都是同一个开发者工具调试发现返回前端的serverid都是同一个,测试接口报错40007 媒体不存在,请尽快修复
2021-07-10webview 是就是类似frame框架打开一个页面, 那refer肯定是你打开的访问地址。
小程序的webview的referer的问题?小程序中的webview的referer是,webview页面的访问地址吗
2021-07-10code只能使用一次 你这code明显是用过一次了
开放平台网页授权一直报 invalid code,?接口地址:https://api.weixin.qq.com/sns/oauth2/component/access_token?appid=APPID&code=CODE&grant_type=authorization_code&component_appid=COMPONENT_APPID&component_access_token=COMPONENT_ACCESS_TOKEN 请求参数:如图 [图片] 返回结果 [图片] 困扰一天了,各种代码确定没问题
2021-07-10我想说微信里有个公众平台安全助手可以自助解绑
个人公众号已注销,管理员账号没有释放,如何处理?微信公众号是:che_126 已经经过7天审核期成功注销了,但是公众账号管理员身份尚未自动解除,没有释放,微信号是:yunshidan [图片]
2021-07-09