检测safari并停止脚本

时间:2018-04-17 07:21:43

标签: javascript jquery safari

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

脚本必须在正文中,并且不能在链接的.js文件中。

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

原始

change from absent to present failed: Execution of '/usr/bin/pip install -q git+git://github.com/Theano/Theano.git' returned 1:   Cannot fetch index base URL http://pypi.python.org/simple/
==> default:   Could not find any downloads that satisfy the requirement numpy>=1.9.1 (from Theano==1.0.1-81.gf2a2df1)
==> default: No distributions at all found for numpy>=1.9.1 (from Theano==1.0.1-81.gf2a2df1)

使用safari检测:

<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>

我是否正在检测野生动物园?

2 个答案:

答案 0 :(得分:3)

我曾经检查用户是否正在使用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';
} 

  

只需将“https://www.example.com”更改为您的网址。

答案 1 :(得分:1)

您可以通过匹配var safari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); //check if safari if(!safari){ // do rest of operation } 并初始化变量来检查浏览器是否为safari。使用该变量,您可以为其他浏览器运行代码。

$data