javascript - 检测 safari 并停止脚本

标签 javascript jquery safari

由于兼容性问题,我需要为 safari(仅限桌面)停用一个脚本。

脚本必须位于正文中,不能位于链接的 .js 文件中。

我尝试添加一个 if 语句来修改脚本的“Cburl”,这样如果检测到 safari 并且给出了错误的 url,那么脚本将不会加载。

原创

<script type="text/javascript">
    var cbuser = { name: '', email: '', message: '' },
        access_token = '3354777755',
        cburl = '//www.domain.com/help/';
        document.write('<script type="text/javascript" src="' + cburl + 'assets/help/js/script.js"></' + 'script>');
</script>

使用 Safari 检测:

    <script type="text/javascript">
    var safari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); //check if safari
    var cbuser = { name: '', email: '', message: '' },
        access_token = '3354777755',
    if(!safari){         
        cburl = '//www.domain.com/nohelp/';
        document.write('<script type="text/javascript" src="' + cburl + 'assets/help/js/script.js"></' + 'script>');
    }
    else {
    cburl = '//www.domain.com/help/';
    document.write('<script type="text/javascript" src="' + cburl + 'assets/help/js/script.js"></' + 'script>');
    }
</script>

我检测Safari的方式有问题吗?

最佳答案

我曾经用它来检查用户是否正在使用 safari。

var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

然后您可以停止执行此操作的脚本:

if(isSafari){ 
  alert('Is safari');
  //Do something

} else {
  alert('Is other browser');
  // Do something
}

这是一个 fiddle,您可以使用它。

这是针对您的具体案例的片段。我将 document.write 更改为 windows.location 以使其正常工作。

var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);

if(isSafari) { 
   var cbuser = { name: '', email: '', message: '' };
   var access_token = '7654345676';
   window.location = "https://www.example.com/notSafari";
} else {
  var cbuser = { name: '', email: '', message: '' };
  var access_token = 'Z2SxfM5dRzKsm3Auhbi4';
  window.location = 'https://www.example.com';
} 

Just change the ´https://www.example.com´ to your URLs.

关于javascript - 检测 safari 并停止脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49872111/

相关文章:

javascript - 带有 javascript 的多功能 xml 属性正则表达式

ios - 我可以在 SFSafariViewController 中从 Safari 获取 cookie 吗?

css - 运动路径和运动旋转在 safari 中不起作用

javascript - 查找子字符串并插入另一个字符串

javascript - 动态更新选择

带有 :after selector 的 Javascript addClass

javascript - 当方向更改为横向模式时,如何隐藏 Safari 的工具栏?

javascript - ReactJS - 渲染调用,但 DOM 未更新

javascript - 将值插入到从数据库中选择的 html

javascript - Highcharts 可以通过 for 循环推送 xAxis 类别吗?