【问题标题】:How do i get the javascript status of any browser?如何获取任何浏览器的 javascript 状态?
【发布时间】:2009-07-16 04:35:41
【问题描述】:

我想获取任何浏览器的 javascript 状态。 这个怎么弄?

意味着当页面加载时,它应该显示该浏览器中的 javascript 是启用还是禁用。

我正在使用 php。

提前谢谢......

【问题讨论】:

  • 实际上我想在 php 变量中获取任何浏览器的 javascript 状态。所以我可以根据它加载不同的东西......

标签: php javascript


【解决方案1】:

为标签中未启用 javascript 的浏览器添加您的消息。

例子:

<noscript>
<p> Javascript is not enabled. Please enable it. <p>
</noscript>

因此,如果没有启用 javascript,则会显示上述消息。

【讨论】:

    【解决方案2】:

    如果你想在服务器端检测浏览器是否运行 js - 在浏览器中运行一些测试脚本,它将 ajax post 请求和结果发送回服务器

    或者让 javascript 设置一个 cookie

    然后将结果与预期进行比较。

    【讨论】:

    • 如果您需要在服务器端知道,那么设置 cookie 可能是您最安全的选择。
    • 如果 javascript 在浏览器中被禁用。那么你就不能发出ajax post请求了。
    • @Zain_Shaikh,在大多数情况下可以通过没有请求来判断,或者通过可以编程为由 javascript 修改的 cookie - 没有 ajax 请求或没有预期结果是 cookie,但要使 cookie 方法起作用,访问者必须手动再发出一个请求。
    【解决方案3】:

    可能有点矫枉过正,但此脚本尝试运行函数 jsTest。如果运行,它会将 div 的文本设置为启用 JavaScript。如果它不运行,说明 JavaScript 已禁用的文本将保留。

    <html>
    <head>
    <script type="text/javascript">
    function jsTest()
    {
      var jsStatusDiv = document.getElementById("jsStatus");
      jsStatusDiv.innerHTML = "JavaScript Enabled";
    }
    </script>
    </head>
    <body onload="jsTest();">
    <div id="jsStatus">JavaScript Disabled</div>
    </body>
    </html>
    

    【讨论】:

      【解决方案4】:

      在body标签中调用一个javascript函数onload。该函数设置了一个 JavaScript 变量,该变量在此浏览器中启用了 JS。默认情况下,您假定 JS 已禁用。

      只有在启用 JS 时才会调用 Javascript,否则不会发生任何事情。在该函数中,您可以使用 document.write 来显示您想要的内容。

      【讨论】:

        【解决方案5】:

        我能想到的最原始的方法是让 HTML 输出一个 JavaScript 函数调用,例如 postbackDoesExecute(),它向 PHP 脚本发出 AJAX 请求,称之为 jsCallback.php。当从 AJAX 请求调用 jsCallback.php 时,它会使用 Javascript = true 或其他内容更新用户的会话(或数据库条目,具体取决于您选择实现它的方式)。如果未记录此条目,则很明显请求已超时或对 postbackDoesExecute() 的 JavaScript 调用从未发生,这意味着 JavaScript 未启用。

        只是一个想法......

        【讨论】:

          【解决方案6】:

          如果您需要您的应用程序根据 JavaScript 可用性显示两种不同的状态,您可以尝试一些 hacky,例如创建中间页面。

          此页面将包含类似的内容

          <meta http-equiv="refresh" content="5;URL=mysite.php?js=0">
          <script type="text/javascript">
            window.location.replace("mysite.php?js=1");
          </script>
          

          这会将使用 Javascript 的人重定向到一个页面,而将其他人重定向到另一个页面。不过这有点hacky。

          如果您的用户通过登录页面,您还可以在登录页面中有一个额外的隐藏字段:

          <input id="hasJs" type="hidden" name="hasJs" value="">
          

          然后

          <script type="text/javascript">
            document.getElementById('hasJs').value = '1';
          </script>
          

          第 索林

          【讨论】:

            猜你喜欢
            • 2015-07-17
            • 1970-01-01
            • 1970-01-01
            • 2014-06-26
            • 1970-01-01
            • 2020-06-16
            • 2011-04-07
            • 1970-01-01
            • 2013-04-12
            相关资源
            最近更新 更多