如何隐藏不支持 JavaScript 的旧版浏览器的 JavaScript 代码?

javascriptweb developmentfront end technology

旧版浏览器有时无法识别 JavaScript 脚本标记。如果无法识别,它们会直接忽略它,并将您的脚本显示为 (X)HTML 文档主体的一部分。使用注释隐藏脚本以防止这种情况发生是一种明智的选择。

现在所有现代浏览器都支持 JavaScript;但是,早期的浏览器不支持。在本文中,我们将学习如何防止 JavaScript 代码在旧版浏览器中执行。

由于您的一些浏览者会在手机上查看网站,而其他人则使用大型桌面屏幕,因此网站不可能在所有浏览器中看起来完全相同。同样,您的一些用户会使用过时的浏览器,而其他用户会使用最新的浏览器。您的一些用户可能正在使用屏幕阅读器来听取您的信息,或者可能放大屏幕来阅读信息。提供一个内容版本,该版本经过精心设计,在现代浏览器上看起来非常出色,但对于过时浏览器的用户来说,在基本层面上仍然可以使用,这就是"支持所有人"的概念。

策略 - 在打开 <script> 标签后,我们将使用没有结束字符 (<!-) 的单行 HTML 注释。之后,我们将创建 JavaScript 代码,该代码将在早期浏览器中隐藏。在我们使用带注释的结束字符 (//->) 之前,脚本将使用 </script> 标签关闭。

语法

<script>
<!--
    // 您的 JavaScript 代码
    // 在旧浏览器中隐藏
    console.log("Tutorials Point");
    //-->
</script>

示例 1

在此示例中,让我们了解,如果浏览器支持 JavaScript,则背景颜色将更改为红色;否则,它将保持黄色。

<!DOCTYPE html>
<html>
   <title>How can JavaScript code be hidden from old browsers that do not support JavaScript - TutorialsPoint</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body bgcolor="green">
   <h1 style="text-align: center; font-size: 3rem;">
      Learn JavaScript with TutorialsPoint!
   </h1>
   <script type="text/javascript">
      <!--
         document.bgColor = "orange";
      //-->
   </script>
</body>
</html>

我们可以观察到,过时的浏览器会忽略 JavaScript 代码并将其视为 HTML 注释,而当前浏览器可以毫无问题地访问 JavaScript 代码。

当浏览器支持 JavaScript 时,会显示橙色,如上例中添加的样式。

接下来,当浏览器不支持 JavaScript 时,会显示绿色,如上例中添加的样式。

示例 2

对于支持 JavaScript 的浏览器,这种脚本隐藏方法也有效。脚本的第一行和最后一行用作其标题。客户端的 JavaScript 解释器知道 HTML 注释开头字符串,但将其视为单行注释。

因此,在支持 JavaScript 的浏览器中,第二行被视为单行注释。类似地,您可以看到下面的行以单行注释字符串开头两次,因此支持 JavaScript 的浏览器也会跳过该行。现在,只有第三行到第五行继续以 JavaScript 语句的形式执行。

虽然需要一些时间来适应,但这种简单而优雅的 HTML 和 JavaScript 注释组合实现了我们期望的目标,即防止不支持 JavaScript 的浏览器显示 JavaScript 代码。尽管现在要求使用此类注释的浏览器越来越少,但在互联网上,JavaScript 代码中使用此类注释仍然相当常见。

<!DOCTYPE html>
<html>
<title>How can JavaScript code be hidden from old browsers that do not support JavaScript - TutorialsPoint
</title>
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body style="text-align:center">
   <h2> Visit TutorialsPoint! </h2>
   <div id="result"> </div>
   <script langauge="JavaScript">
      <!-- start an HTML comment to hide the script
      // Here are the JavaScript statements.
      //
      //
      // close the HTML comment which hides the script -->
      const date = new Date();
      document.getElementById("result").innerHTML = (date);
   </script>
</body>
</html>

相关文章