【问题标题】:JavaScript / HTML: Disable Block of Code Only in OperaJavaScript / HTML:仅在 Opera 中禁用代码块
【发布时间】:2023-03-10 23:05:01
【问题描述】:

我想告诉 Opera 忽略一段 JavaScript 代码,但我希望所有其他浏览器都能识别该代码,如下所示:

if NOT Opera:

<script type="text/javascript">

// Code

</script>

或者更确切地说:

<script type="text/javascript">

 if NOT Opera:

// Code

</script>

有解决办法吗?非常感谢您的帮助!

【问题讨论】:

    标签: javascript html conditional opera


    【解决方案1】:

    您只需查看window.navigator.userAgent variable。在其中,您会找到一个字符串,其中包含有关您正在使用的浏览器的信息。我无法访问某个版本的 safari,所以我无法真正为您测试 -

    if (window.navigator.userAgent.match('/safari/i')){
      // user is using safari
    }
    

    参考资料 -


    请记住,这不是进行浏览器检测的最佳方法,并且不会阻止人们通过 safari 使用您的网站 - 您的 JavaScript 可供所有人查看和编辑,因此如果您认为这是一项安全功能,您可能想重新考虑一下。

    我建议在服务器端检测用户浏览器(如果你使用 PHP,那么你可以使用$_SERVER['HTTP_USER_AGENT']),然后让服务器根据用户浏览器返回不同的 JavaScript 文件。

    【讨论】:

    • 你确定navigator.appName 是你想放在这里的那个吗? navigator.appName 为除 IE 之外的所有浏览器返回 "Netscape",并且所有基于 Webkit 的浏览器都在 navigator.appVersion 中包含 "Safari"。
    • @der - 看起来你是对的。感谢您的反馈!我做了一些修改以反映这一点......
    • @Lix - userAgent 看起来更好。
    【解决方案2】:

    这应该可以解决问题:

    <script type="text/javascript">
    if(navigator.userAgent.indexOf("Opera") < 0 ) {
        // Code
    }
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-25
      • 2014-04-24
      • 1970-01-01
      • 2015-01-10
      • 1970-01-01
      相关资源
      最近更新 更多