You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

检测桌面版Safari并停用内嵌脚本的技术问询

针对桌面版Safari停用内嵌脚本的解决方案

嘿,刚好遇到过类似的兼容性问题,我来给你一个靠谱的实现方案!

首先,咱们得准确区分桌面版Safari——毕竟移动端Safari和Chrome这类浏览器的userAgent里也会带有Safari字样,不能误判。这里的检测逻辑要做到:

  • 识别出包含Safari标识的浏览器
  • 排除Chrome、Edge等伪装成Safari的浏览器
  • 排除移动端的Mobile Safari

接下来,把你的原脚本加上条件判断,针对桌面版Safari把cburl设为无效URL(比如'#'),其他浏览器保持原有效地址。修改后的完整代码如下:

<script type="text/javascript">
var cbuser = { name: '', email: '', message: '' },
    access_token = '3354777755',
    // 检测桌面版Safari的逻辑
    isDesktopSafari = /^((?!chrome|edge|mobile).)*safari/i.test(navigator.userAgent);

// 根据检测结果设置cburl
var cburl = isDesktopSafari ? '#' : '//www.domain.com/help/';

document.write('<scri' + 'pt type="text/javascript" src="' + cburl + 'your-script-part.js"></scri' + 'pt>');
</script>

检测逻辑说明:

  • (?!chrome|edge):排除Chrome和Edge,因为它们的userAgent里会包含"Safari"但实际不是Safari浏览器
  • (?!mobile):排除移动端的Mobile Safari,只保留桌面版
  • /i:不区分大小写,避免大小写差异导致的检测失败

这样设置后,桌面版Safari会加载无效的#地址,相当于停用了该脚本;其他浏览器则正常加载原地址的脚本逻辑。另外,document.write的写法在所有主流浏览器(包括桌面版Safari)里都是支持的,完全符合你的内嵌脚本需求。

内容的提问来源于stack exchange,提问作者thank_K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:12:34