codecamp

微信小程序 Q&A

不能直接操作 Page.data

避免在直接对 Page.data 进行赋值修改,请使用 Page.setData 进行操作才能将数据同步到页面中进行渲染

怎么获取用户输入


能够获取用户输入的组件,需要使用组件的属性bindchange将用户的输入内容同步到AppService

<input id="myInput" bindblur="bindBlur" />
var inputContent = {}

Page({
    data:{
      inputContent: {}
    },
    bindChange:function(e){
        inputContent[e.currentTarget.id] = e.detail.value
    }
})

为什么脚本内不能使用window对象


页面的脚本逻辑是在JsCore中运行,JsCore是一个没有窗口对象的环境,所以不能在脚本中使用window,也无法在脚本中操作组件

为什么zepto/jquery无法使用


zepto/jquery会使用到window对象和document对象,所以无法使用。

wx.navigateTo无法打开页面


一个应用同时只能打开5个页面,当已经打开了5个页面之后,wx.navigateTo不能正常打开新页面。请避免多层级的交互方式,或者使用wx.redirectTo

样式表不支持级联选择器


WXSS支持以.开始的类选择器。如:

  .normal_view{
    color: #000000;
    padding: 10px;
  }

可以使用标签选择器,控制同一类组件的样式。如:使用input标签选择器控制<input/>的默认样式。

  input{
    width: 100px;
  }

本地资源无法通过WXSS获取


background-image:可以使用网络图片,或者base64,或者使用<image/>标签

如何修改窗口的背景色


使用page标签选择器,可以修改顶层节点的样式

page{
  display:block;
  min-height:100%;
  background-color:red;
}

HTTPS 请求不成功

  1. tls 仅支持 1.2 及以上版本
  2. 部分 Android 机型需要 tls1.0 或者 tls1.1,所以请确保服务器的 tls 版本为 1.0、1.1、1.2

网络请求的 referer

网络请求的 referer 是不可以设置的,格式固定为 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}为小程序的 appid,{version}为小程序的版本号,版本号为 0 表示为开发版、体验版以及审核版本,版本号为 devtools 表示为开发者工具,其余为正式版本。

为什么 map 组件总是在最上层

mapcanvasvideotextarea是由客户端创建的原生组件,原生组件的层级是最高的,所以页面中的其他组件无论设置z-index为多少,都无法盖在原生组件上。 原生组件暂时还无法放在scroll-view上,也无法对原生组件设置css动画。


微信小程序 联系我们
微信小程序设计规范(1) 友好礼貌
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

微信小程序 指南

目录结构

开放能力

微信小程序 调试

微信小程序 实时日志

微信小程序 小程序测速

微信小程序 基础组件

微信小程序 API

媒体

界面

微信小程序API 绘图

微信小程序 服务端

接口调用凭证

统一服务消息

微信小程序 服务市场

微信小程序 生物认证

微信小程序 云开发

服务端

微信小程序云开发服务端API 数据库

SDK文档

微信小程序 扩展能力

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }