js獲取uniapp獲取webview內容高度
-
在uni-app中,如果你想要獲取webview的內容高度,可以使用uni-app提供的bindload事件來監聽webview的加載,然后通過調用webview的invokeMethod方法來獲取內容的高度。
-
以下是一個示例代碼:
<template><view><web-view src="https://www.example.com" @message="onMessage" @load="onLoad"></web-view></view> </template><script>export default {methods: {onLoad(e) {// 當webview加載完成時,發送消息獲取內容高度this.getWebViewHeight(e.detail.webviewId);},onMessage(e) {// 接收從webview發送的消息console.log('WebView content height:', e.detail.data);},getWebViewHeight(webviewId) {// 發送消息給webview,獲取內容高度uni.postMessage({data: 'getHeight',webviewId: webviewId});}}} </script>
-
在web端頁面中,你需要監聽消息事件,并在接收到特定消息時(例如’getHeight’),使用document.body.scrollHeight或其他適當的方式來獲取內容高度,并將其發送回uni-app端。
// 假設你的web頁面是這樣的 window.addEventListener('message', function(event) {if (event.data === 'getHeight') {// 獲取內容高度var height = document.body.scrollHeight;// 發送內容高度到uni-appevent.source.postMessage({ height: height }, event.origin);} });
這樣,當uni-app的onMessage事件被觸發時,你將能夠接收到webview內容的高度,并可以根據需要進行處理。