3

head にメタタグを追加および削除するサンプル スクリプトを作成しました。しかし、Android 2.2 はその削除を尊重していないようです。ただし、たとえば、クリック時のメタタグの追加は尊重されます。タグの削除を尊重し、javascript を介してデフォルトのビューポートに戻すにはどうすればよいですか?

<script type="text/javascript">

$(document).ready(function(){
function initMeta(){
var headID = document.getElementsByTagName("head")[0];         
var metaNode = document.createElement('meta');
metaNode.name = 'viewport';
metaNode.content = 'width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0';
metaNode.id = 'metatag';
headID.appendChild(metaNode);}

function closeMeta(){
$("#metatag").remove();}


$("#add").click(function(){initMeta();alert("meta opened");});
$("#del").click(function(){closeMeta();alert("meta closed");});

});

</script>

<input name="add" type="button" value="add metatag" id="add"/>
<input name="del" type="button" value="delete metatag" id="del"/>
4

1 に答える 1

3

iOSSafariでもこの動作に注意します。

実際にメタタグを削除しています(DOMで確認可能-削除後に$( "#metatag")。lengthにアラートを送信してみてください)

問題は、ビューポート自体がこのタグにコンテンツがないことに応答しないことです。コンテンツを更新するか、新しいコンテンツでメタタグを再度追加すると、画面にマニフェストが表示されます。しかし、メタタグを削除するだけで、UAは明示的な指示を受け取らないため、「変更は必要ありません」と考えているようです。

お役に立てば幸いです。あなたの質問/例は、これが可能であることに気付くのに役立ちました!

于 2011-09-19T21:09:58.927 に答える