9

我使用以下 jquery 将元标记插入到 html 文档中。

<script type="text/javascript">
if(screen.width>=320 && screen.width<=767){
$('head').append('<meta id="viewport" name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">');}    
</script>

如果可能的话,我想在不使用 jquery 的情况下插入元标记。有人知道我该怎么做吗?

我相信我可能需要使用 document.getElementByTagName 但我不确定如何。

以防万一您想知道,我将元标记插入到我的 html 中,以优化网站以使用 iphone 进行查看。不幸的是,width=device-width 不是一个选项,因为它不能很好地与我的 ipad 版本配合使用。

4

4 回答 4

36
var viewPortTag=document.createElement('meta');
viewPortTag.id="viewport";
viewPortTag.name = "viewport";
viewPortTag.content = "width=320, initial-scale=1.0, maximum-scale=1.0, user-scalable=0";
document.getElementsByTagName('head')[0].appendChild(viewPortTag);
于 2011-10-10T10:31:32.000 回答
6

您还可以将“setAttribute”(而不是“点”表示法)用于怪异属性名称(包含非字母数字字符)。

例子:

var iefix=document.createElement('meta');
iefix.setAttribute("http-equiv", "X-UA-Compatible");
iefix.setAttribute("content", "IE=Edge");
document.getElementsByTagName('head')[0].appendChild(iefix);

上面的示例导致 IE (<=9) 始终使用最新的文档标准模式。有时 IE 会退回到旧标准,因此会破坏您现代的 javascript/canvas 网络应用程序。

于 2012-09-29T23:40:18.067 回答
5

Javascript解决方案:

document.getElementsByTagName('head')[0].innerHTML += '<meta id="viewport" name="viewport" content="width=320; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">';
于 2011-10-10T10:29:01.743 回答
1

这是一个创建元标记的解决方案,如果它尚不存在:

var viewport = document.querySelector('meta[name=viewport]');
var viewportContent = 'width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0';

if (viewport === null) {
  var head = document.getElementsByTagName('head')[0];
  viewport = document.createElement('meta');
  viewport.setAttribute('name', 'viewport');
  head.appendChild(viewport);
}

viewport.setAttribute('content', viewportContent);
于 2013-10-22T15:34:07.597 回答