noscript块内的元视口标记

时间:2010-12-27 21:30:11

标签: javascript iphone html

我有一个iPhone网络应用程序,使用Javascript动态创建“元视口”标记,具体取决于用户配置的某些设置。

我想在Javascript被禁用的情况下提供默认的元视口标记,但找不到合适的方法。

我试过了:

<noscript>
<meta name="viewport" content="initial-scale=1.0">
</noscript>

它确实有效,但它似乎没有效果,因为noscript显然不允许在HTML文档的HEAD部分中显示(我也查看了this question

任何替代方案?

修改

我已经尝试过使用默认的元视口标记,然后使用Javascript 删除(或替换)它。这“几乎”有效:您确实可以使用Javascript修改现有的视口元标记(该技术已得到很好的描述here)。但是有一些限制:虽然您可以修改给定属性的值,但是您不能使设备“忘记”(重置为默认值)已经定义的属性。此外,只需使用Javascript删除元标记也无效。

2 个答案:

答案 0 :(得分:3)

棘手。

你试过吗

<meta name="viewport" content="initial-scale=1.0">

<script>
document.write('<meta name="viewport" content="initial-scale=2.0">');
</script>

? (如果启用了脚本,则2.0是您想要设置的比例)

我找不到关于这是否合法的任何约束信息,但似乎是HTML格式。问题是它是否会被正确解析。

除此之外,我只能想到两种选择:

  • 检测服务器端的Javascript支持,并提供两个不同的页面,一个包含,一个没有元标记

  • 始终嵌入视口标记,并使用Javascript 删除 - 我不知道这是否可行。

答案 1 :(得分:2)

您可以使用HTML5。在HTML5中,<noscript>被允许作为头部的孩子,<meta>被允许作为noscript的孩子。

见这里:http://dev.w3.org/html5/spec/scripting-1.html#the-noscript-element