检测野生动物园并停止脚本

tha*_*k_K 2 javascript safari jquery

由于兼容性问题,我有一个需要停用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>
Run Code Online (Sandbox Code Playgroud)

使用野生动物园检测:

    <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>
Run Code Online (Sandbox Code Playgroud)

我检测野生动物园的方式有问题吗?

goe*_*iaz 6

我曾经检查用户是否正在使用野生动物园。

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

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

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

} else {
  alert('Is other browser');
  // Do something
}
Run Code Online (Sandbox Code Playgroud)

这是一个小提琴,因此您可以使用它。

这是您特定情况的摘录。我改变了document.writewindows.location以使其发挥作用。

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

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