我有一个iPhone网络应用程序,使用Javascript动态创建“元视口”标记,具体取决于用户配置的某些设置。
我想在Javascript被禁用的情况下提供默认的元视口标记,但找不到合适的方法。
我试过了:
<noscript>
<meta name="viewport" content="initial-scale=1.0">
</noscript>
它确实有效,但它似乎没有效果,因为noscript
显然不允许在HTML文档的HEAD部分中显示(我也查看了this question)
任何替代方案?
修改
我已经尝试过使用默认的元视口标记,然后使用Javascript 删除(或替换)它。这“几乎”有效:您确实可以使用Javascript修改现有的视口元标记(该技术已得到很好的描述here)。但是有一些限制:虽然您可以修改给定属性的值,但是您不能使设备“忘记”(重置为默认值)已经定义的属性。此外,只需使用Javascript删除元标记也无效。
答案 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