HTML是否理解“if-else”?

时间:2010-07-19 09:15:03

标签: html logic

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

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

else { load non-flash website }

我们在这里。我可以为带宽控制做同样的事情吗?假设有线客户访问我的网站。他加载我的10mb满载Flash网站时没有问题。但如果网络连接速度较慢的人访问我的网站,我可以跳过Flash网站并将该用户重定向到非Flash网站吗?

如果没有办法实现这一点,是否有任何解决方法,任何一个?

提前致谢!

8 个答案:

答案 0 :(得分:12)

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进行带宽控制是不可能的。

答案 1 :(得分: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";
}

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:1)

你会使用Javascript。以下是Adobe的Flash检测说明页面:http://www.adobe.com/support/flash/how/shock/javaplugs/

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

答案 4 :(得分:1)

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

答案 5 :(得分:1)

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

答案 6 :(得分:0)

if-else肯定适用于html文件,但我认为你不能将它用于你的建议。它实际上也是javascript,所以它可能不是你想要的。

if else语句的示例:

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

答案 7 :(得分:0)

如果将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的人有所帮助!