<head>
要素のHTMLソースの編集を防ぐCMSの使用。
たとえば、<title>
タグの上に次を追加します。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
通常どおり選択して追加できます。
$('head').append('<link />');
JavaScript:
document.getElementsByTagName('head')[0].appendChild( ... );
DOM要素を次のようにします。
link=document.createElement('link');
link.href='href';
link.rel='rel';
document.getElementsByTagName('head')[0].appendChild(link);
jQuery
$('head').append( ... );
JavaScript:
document.getElementsByTagName('head')[0].appendChild( ... );
最新のブラウザ(IE9 +)では、 document.head も使用できます。
例:
var favicon = document.createElement('link');
favicon.id = 'myFavicon';
favicon.rel = 'shortcut icon';
favicon.href = 'http://www.test.com/my-favicon.ico';
document.head.appendChild(favicon);
innerHTML
を使用して、追加のフィールド文字列を連結するだけです。
document.head.innerHTML = document.head.innerHTML + '<link rel="stylesheet>...'
ただし、最初にロードした後に、ヘッドに追加したものがブラウザーによって認識されることを保証することはできません。また、追加のスタイルシートがロードされると、FOUC(スタイル設定されていないコンテンツのフラッシュ)を取得する可能性があります。
私は長年APIを見ていませんが、 document.write
を使用することもできます。これは、この種のアクション用に設計されたものです。ただし、最初のAJAXリクエストが完了するまで、ページのレンダリングをブロックする必要があります。
一時的な要素(例:DIV
)を作成し、HTMLコードをinnerHTML
プロパティに割り当てて、その子ノードをHEAD
要素に1つずつ追加します。たとえば、次のように:
var temp = document.createElement('div');
temp.innerHTML = '<link rel="stylesheet" href="example.css" />'
+ '<script src="foobar.js"><\/script> ';
var head = document.head;
while (temp.firstChild) {
head.appendChild(temp.firstChild);
}
HEAD
を介してinnerHTML
の内容全体を書き換える場合と比較して、これはHEAD
要素の既存の子要素にはまったく影響しません。
この方法で挿入されたscriptsは、スタイルが正常に適用される間、明らかに自動的に実行されないことに注意してください。したがって、スクリプトを実行する必要がある場合は、 Ajax を使用してJSファイルをロードし、 eval()
を使用してその内容を実行する必要があります。
javascript pureを試してください:
ライブラリJS:
appendHtml = function(element, html) {
var div = document.createElement('div');
div.innerHTML = html;
while (div.children.length > 0) {
element.appendChild(div.children[0]);
}
}
タイプ:appendHtml(document.head, '<link rel="stylesheet" type="text/css" href="http://example.com/example.css"/>');
またはjQuery:
$('head').append($('<link rel="stylesheet" type="text/css" />').attr('href', 'http://example.com/example.css'));
なぜjqueryを使うのが嫌いなのかわかりません。私はheadに 'head'のidを与えました。
<head id="head">
<meta charset="utf-8">
<title></title>
</head>
<script type="text/javascript">
var head = document.getElementById('head');
if (window.screen.width<800) {
head.innerHTML = " <link rel='stylesheet' href='../css/gallerys.css?ver=1.2'>";
}else {
head.innerHTML="<link rel='stylesheet' href='../css/gallerys.css?ver=1.3'>";
}
</script>