首先,我做了一些谷歌,发现IE'有条件的评论',并理解它是非标准的。我也觉得没有标准的HTML'IF',所以我的问题是关于我需要做些什么才能达到同样的效果(也许Javascript?)......
我想有条件地包含一个外部.html文件(来自一系列外部.html文件)。具体来说,外部文件每个只包含一行<meta>
元素。或者,可以在HTML文件中包含多个内联<meta>
元素,并有条件地“选择”一个元素(有效地忽略其他元素)?
基本上,我可以做一些与这些伪代码示例中的任何一个相同的事情吗?
使用外部文件的伪代码示例...
<html>
<head>
if some-condition
<!--#include file="meta1.html" -->
else
<!--#include file="meta2.html" -->
...
</head>
...
</html>
直接选择替代元素的替代示例(再次伪代码)......
<html>
<head>
if some-condition
<meta name="viewport" content="abc" />
else
<meta name="viewport" content="def" />
...
</head>
...
</html>
注意:在所有情况下,<meta name
属性始终为viewport
- 它只是content
属性,可能需要更改某些其他属性。
编辑:主要条件是客户类型。一个示例是,为了帮助在Android设备上正确调整网络应用页面的大小,您可以使用只有Android设备可以理解的content
的某些viewport
数据。对于传统浏览器,我会为content
设置一组默认数据(例如,宽度/高度)。这也可以扩展到其他客户端,如谷歌电视,iOS等等。
答案 0 :(得分:7)
使用Javascript:
document.head.insertAdjacentHTML( 'beforeEnd', '<meta name="viewport" content="abc" />' );
答案 1 :(得分:1)
你可以很容易地用javascript / jQuery做到这一点。
设置条件,然后append()
设置为head
。
示例:
if(//condition here){
$('head').append('<meta name="viewport" content="abc" />')
}
else{
$('head').append('<meta name="viewport" content="def" />')
}
答案 2 :(得分:0)
如果你使用的是服务器端,比如asp或java,那么对你来说就容易多了。
我会认为你没有使用服务器端编码。
使用javascript获取浏览器名称(我猜是navigator.appname)。
然后您可以使用DOM在<meta ..../>
元素中添加<head>
标记。
document.getElementsByTagNam( '头')的appendChild(metaChild);