目前最有效且主流的解法是前端 User-Agent 判定 + Android Intent 自動跳轉 + iOS 提示頁面引導。
方案一:JavaScript 自動跳轉(推薦,適用於 phpBB3 全站)
這是目前最穩定且對使用者體驗最好的做法。
1. 新建判斷與跳轉腳本
在 phpBB3 的樣板檔中加入判斷邏輯。Android 裝置可透過 intent:// 協定強制喚起 Chrome/預設瀏覽器;iOS 因系統安全限制無法靠純 JS 強制喚醒 Safari,因此採用引導畫面。
請編輯 phpBB3 的整體頁尾檔案(例如:styles/prosilver/template/overall_footer.html),在 </body> 前加入以下程式碼:
代碼: 選擇全部
<script>
document.addEventListener('DOMContentLoaded', function() {
// 取得目前網站的網域
var currentDomain = window.location.hostname;
// 取得頁面中所有的超連結
var links = document.getElementsByTagName('a');
for (var i = 0; i < links.length; i++) {
var link = links[i];
// 確保連結有 href 屬性,且不是內部錨點
if (link.href && !link.href.startsWith('#')) {
// 檢查連結網域是否與目前網站不同(外部連結)
if (link.hostname !== currentDomain) {
link.setAttribute('target', '_blank');
// 安全防護:防止新視窗取得父視窗控制權
link.setAttribute('rel', 'noopener noreferrer');
}
}
}
});
</script>
修改完模板後,請至 phpBB 管理員控制台(ACP)點擊**「清除快取」**,變更才會生效。
以下修改meta fb ig threads 等app 無效
styles/prosilver/template/bbcode.html
代碼: 選擇全部
<!-- BEGIN url --><a href="{URL}" target="_blank" rel="noopener noreferrer" class="postlink">{DESCRIPTION}</a><!-- END url -->