uni-app
@ + 事件名 或 v-on: + 事件名
事件信息从 event 中获取
<template>
<view>
<mp-html @ready="ready" />
</view>
</template>
<script>
export default {
methods: {
ready (e) {
console.log(e)
}
}
}
</script>
支付宝小程序
on + 事件名(首字母大写)
事件信息从 event 中获取
<mp-html onReady="ready">
Page({
ready (e) {
console.log(e)
}
})
其他小程序平台
bind + 事件名
事件信息从 event.detail 中获取
<mp-html bindready="ready" />
Page({
ready (e) {
console.log(e.detail)
}
})
触发时机:dom 树加载完毕时
返回值:无
用途:可以调用 api 函数
触发时机:图片加载完毕时(不包含懒加载的图片)
?> 判断方式是 350ms 总高度无变化就认为加载完毕,部分情况下可能不准确;2.4.0 版本起 lazy-load 属性为 false 时根据图片的 load 事件判断,可以基本准确触发
返回值:富文本区域的 boundingClientRect 结构体,包含大小位置信息
用途:此时进行 锚点跳转 可以基本保证跳转位置正确
?> 如果设置了 懒加载,此时返回的大小不一定是最终大小,如果需要实时的大小,可以调用 getRect 方法
触发时机:发生渲染错误时
返回值:一个 *object*,其中 source 为错误来源(包括 *img*、*video*、*audio*),attrs 为该标签的属性列表(包含 src 等信息),errMsg 是错误信息
用途:收集错误信息,减少使用出错率高的链接
触发时机:图片被点击时
返回值:该 img 标签的属性列表
用途:
默认情况下图片被点击时将自动预览(具体处理可见 图片效果),如果不希望如此,可将 preview-img 属性设置为 false 并在这里自定义处理
如果需要用到富文本中所有图片的数组,可以通过 imgList 的 api 获取
示例:
Page({
imgtap (e) {
// 对做了某种标记的图片进行预览
if (e.detail['data-flag']) {
wx.previewImage({
urls: [e.detail.src] // 仅预览单张图片
})
}
}
})
触发时机:链接被点击时
返回值:该 a 标签的属性列表
?> 2.0.5 版本起增加返回该标签内部文本 innerText
用途:
默认情况下链接被点击时,对于外部链接,将被拷贝到剪贴板,如果不希望如此,可以将 copy-link 属性的值设置为 false 后在这里自定义处理,可参考以下方案:
示例:
Page({
linktap (e) {
if (e.detail.href.includes('.doc')) {
// 下载 doc 文件
wx.downloadFile({
url: e.detail.href,
success (res) {
wx.hideLoading()
wx.openDocument({
filePath: res.tempFilePath
})
},
fail (err) {
wx.hideLoading()
wx.showModal({
title: '失败',
content: err.errMsg,
showCancel: false
})
}
})
} else if (e.detail.href.includes('xxx.com')) {
// 跳转到 webview
wx.navigateTo({
url: 'pages/webview/webview?url=' + e.detail.href,
})
} else if (e.detail['data-appid']) {
// 跳转其他小程序
wx.navigateToMiniProgram({
appId: e.detail['data-appid']
})
}
}
})
?> 2.3.0 版本起支持
触发时机:音视频播放时
返回值:无
用途:和 pauseMedia 的 api
配合可以实现与页面中其他音视频进行互斥播放
示例:
Page({
// 页面中的音视频播放事件
pagePlay() {
// ctx 为组件实例
ctx.pauseMedia() // 暂停组件内的音视频播放
},
// 组件的 play 事件
componentPlay() {
// media 为页面中的音视频实例
media.pause() // 暂停页面中的音视频播放
}
})