為什麼H5會話頁面有遮擋摺疊?
有時會有訪客反饋說手機網頁打開對話頁面遮擋,導致他無法回覆客服的訊息,這是為什麼呢?

出現這種情況大概率是因為在手機瀏覽器中,地址欄會隨捲動自動顯示/隱藏,導致了頁面的可視高度動態變化;而部分客戶會直接用iframe把對話頁直接嵌到自己的產品,設定的參數單位可能無法靈敏適配,因此導致了頁面的遮擋。
解決方案(僅適用於iframe情況下):
常見的錯誤寫法有:
/* ❌ vh 是固定值,不會隨地址欄變化更新 */
iframe { height: 100vh; }
/* ❌ dvh 雖然是動態的,但舊瀏覽器不支援 */
iframe { height: 100dvh; }
✅我們推薦的寫法是:使用JavaScript 動態計算高度,相容所有瀏覽器:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
body, html {
margin: 0;
padding: 0;
overflow: hidden;
}
</style>
</head>
<body>
<iframe id="chat-iframe" src="您的客服頁面地址"></iframe>
<script>
function resizeIframe() {
var iframe = document.getElementById('chat-iframe');
iframe.style.width = '100%';
iframe.style.height = window.innerHeight + 'px';
iframe.style.border = 'none';
iframe.style.display = 'block';
}
resizeIframe();
window.addEventListener('resize', resizeIframe);
</script>
</body>
</html>
```
注意⚠️
- 必須設定 `margin: 0; padding: 0;` - 否則會出現多餘的邊距
- 必須設定 `overflow: hidden;` - 防止出現捲軸
- 必須設定 `display: block;` - iframe 預設是 inline 元素,會有底部間隙
- 不要用固定像素值 - 如
height: 800px;無法自適應不同裝置
