Javascript noscript块内的元视口标记

Javascript noscript块内的元视口标记,javascript,iphone,html,Javascript,Iphone,Html,我有一个iphoneweb应用程序,它使用Javascript动态创建一个“metaviewport”标记,具体取决于某些用户配置的设置 我想提供一个默认的元视口标记,以防Javascript被禁用,但找不到正确的方法 我试过这个: <noscript> <meta name="viewport" content="initial-scale=1.0"> </noscript> 它确实有效,但似乎无效,因为noscript显然不允许出现在HTML文档的头

我有一个iphoneweb应用程序,它使用Javascript动态创建一个“metaviewport”标记,具体取决于某些用户配置的设置

我想提供一个默认的元视口标记,以防Javascript被禁用,但找不到正确的方法

我试过这个:

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

它确实有效,但似乎无效,因为
noscript
显然不允许出现在HTML文档的头部分(我也看过)

还有别的选择吗

编辑:

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

很棘手

你试过了吗

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

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

文件。写(“”);
??(2.0是启用脚本时您想要设置的比例)

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

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

  • 检测服务器端的Javascript支持,并为两个不同的页面提供服务,一个带有meta标记,另一个没有meta标记

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

    • 棘手

      你试过了吗

      <meta name="viewport" content="initial-scale=1.0">
      
      <script>
      document.write('<meta name="viewport" content="initial-scale=2.0">');
      </script>
      
      
      文件。写(“”);
      
      ??(2.0是启用脚本时您想要设置的比例)

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

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

      • 检测服务器端的Javascript支持,并为两个不同的页面提供服务,一个带有meta标记,另一个没有meta标记

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


        • 您可以使用HTML5。在HTML5中,
          被允许作为head的子级,而
          被允许作为noscript的子级


          请参见此处:

          您可以使用HTML5。在HTML5中,
          被允许作为head的子级,而
          被允许作为noscript的子级


          请参见此处:

          谢谢您的建议。我不知道HTML5的头部分允许使用noscript。很遗憾,我无法切换到HTML5的应用程序。谢谢你的建议。我不知道HTML5的头部分允许使用noscript。遗憾的是,我无法为这个应用程序切换到HTML5。@Pekka:实际上,我在考虑noscript之前就尝试了第二种方法。但是,当包含默认元视口标记,然后用Javascript删除/修改/替换时,iPhone仍将使用原始元视口定义:-(@Pekka:如何检测服务器端是否启用了Javascript?@Grodriguez什么服务器端语言)你可以使用吗?@Grodriguez我可以想到两种方法:1.当用户第一次进入你的站点时,将Javascript重定向到URL,如
          example.com/?Javascript=yes
          ,然后将信息存储在服务器端的用户会话中。2.使用Javascript设置cookie。在下一个请求中,你可以检查服务器端是否存在cookie已设置。@Pekka:我希望能在不涉及额外请求的情况下实现这一点,但无论如何还是要感谢。@Pekka:实际上,我在考虑noscript之前就尝试了第二种方法。但是,当包含默认的元视口标记,然后用Javascript删除/修改/替换时,iPhone仍将使用原始的元视口定义ion:-(@Pekka:如何检测服务器端是否启用了Javascript?@Grodriguez什么服务器端语言)你可以使用吗?@Grodriguez我可以想到两种方法:1.当用户第一次进入你的站点时,将Javascript重定向到URL,如
          example.com/?Javascript=yes
          ,然后将信息存储在服务器端的用户会话中。2.使用Javascript设置cookie。在下一个请求中,你可以检查服务器端是否存在cookie已经设置好了。@Pekka:我希望能找到一种不需要额外请求的方法,但还是要谢谢你。