【问题标题】:Does HTML understand "if-else"?HTML 是否理解“if-else”?
【发布时间】:2011-03-17 19:44:16
【问题描述】:

假设我的网站有 Flash 版本和非 Flash 版本。当用户访问我的网站时,有什么方法可以创建以下逻辑:

if (user has flash-plugin installed) { load flash website }

else { load non-flash website }

当我们在这里时。我可以对带宽控制做同样的事情吗?假设有线电视客户访问我的网站。他可以毫无问题地使用背景视频加载我的 10mb 满载 Flash 网站。但是,如果互联网连接速度较慢的人访问我的网站,我可以跳过 Flash 网站并将该用户重定向到非 Flash 网站吗?

如果没有办法做到这一点,是否有任何解决方法?

提前致谢!

【问题讨论】:

  • 如果我是你,如果你必须测试某人的带宽,我会认真重新考虑使用闪存作为解决方案。如果使用更新的更被接受的技术无法实现相同的效果,则会弹出一个闪屏,询问用户他们是否想要 Flash 或标准站点。但请注意,这会惹恼您的用户。
  • 简单。将您的逻辑更改为if (user has flash-plugin installed) {load non-flash website} :)

标签: html logic


【解决方案1】:

HTML 对浏览器的功能有一组有限的“if/else”测试,例如是否可以处理脚本(<noscript>)、框架(<noframes>)等

您在 Flash 插件上的案例可以通过 <object>for example 的后备内容处理:

<object type="application/x-shockwave-flash" data="x.swf" width="400" height="300">
   <param name="movie" value="x.swf" />
   <p>Your browser does not support Flash etc etc etc.</p>
</object>

(请参阅Providing alternative images if Adobe Flash isn’t available 了解更多替代方案。)

但仅使用 HTML 是不可能进行带宽控制的。

【讨论】:

    【解决方案2】:

    您必须使用 javascript。这是一个JS上的插件检测工具。

    http://www.oreillynet.com/pub/a/javascript/2001/07/20/plugin_detection.html

     
    var isFlashInstalled = detectFlash();
    if (isFlashInstalled)
    {
      window.location = "main_with_flash.htm";
    }
    else
    {
      window.location = "main_no_flash.htm";
    }
    

    【讨论】:

      【解决方案3】:

      不,这在纯 HTML 中是不可行的。您可能需要 JavaScript 的帮助,或者可能需要像 PHP 这样的服务器端语言,或 Server Side Includes(尽管最好使用 JS 来检测 Flash。)

      唯一的“if/else”是 JavaScript 的存在。 noscript 标签内的任何内容都只会在不支持 JavaScript 或将其关闭的浏览器中显示。

      <noscript>You have JavaScript turned off!</noscript>
      

      【讨论】:

        【解决方案4】:

        您将使用 Javascript。这是 Adob​​e 的 Flash 检测说明页面:http://www.adobe.com/support/flash/how/shock/javaplugs/

        连接速度有点复杂,需要做很多事情来测试功能(再次使用 javascript)。这是此方法的概念验证:http://alexle.net/archives/257

        【讨论】:

          【解决方案5】:

          HTML 是一种文档格式,而不是一种语言。根据浏览器如何解释某些标签,您可以做一些有限的事情,但您确实应该使用 Javascript。

          【讨论】:

            【解决方案6】:

            您不能在 HTML 中执行此操作。但是你可以使用 Javascript。 (类似于this

            【讨论】:

              【解决方案7】:

              if-else 绝对适用于 html 文件,但我认为您不能将它用于您的建议。而且它实际上是 javascript,所以它可能不是你要找的。​​p>

              if else 语句示例:

              <script>
              if (A == 1) {
                  B = 7
              } else {
                  B = 9
              }
              </script>
              

              【讨论】:

              • 除了显示文本 if (A == 1) { B = 7 } else { B = 9 } 之外,它在 HTML 中什么也不做。这不是 if else 语句,它是一些数据。
              • 我很抱歉,我误解了我之前学到的东西。我没有意识到这仅在
              【解决方案8】:

              如果您将 Python 与 Django 或 Flask 一起使用,则可以使用 Jinja。您可以在 Python 部分中传入参数并在 HTML 中使用它们。 Jinja 的语法是:

              {% if condition %}
                 <!--HTML here-->
              {% elif condition %}
                 <!--HTML here-->
              {% else %}
                 <!--HTML here-->
              {% endif %}
              

              如您所见,当您完成if 语句后,您需要使用{% endif %} 语句。 Jinja 还允许许多其他事情,例如 for 循环和模板继承。希望这可以帮助任何使用 Python 和 Django 或 Flask 的人!

              【讨论】:

                猜你喜欢
                • 2020-02-29
                • 2018-04-27
                • 2023-03-14
                • 1970-01-01
                • 1970-01-01
                • 2015-01-07
                • 2017-05-12
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多