<head>
要素のHTMLソースを編集できないようにするCMSを使用しています。
たとえば、<title>
タグの上に次のコードを追加します。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta>
タグが何であるか、どのブラウザが関係しているかによっては、タグを動的に追加しても効果がない可能性があることに注意してください。
<head>
要素のHTMLソースを編集できないようにするCMSを使用しています。
たとえば、<title>
タグの上に次のコードを追加します。
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta>
タグが何であるか、どのブラウザが関係しているかによっては、タグを動的に追加しても効果がない可能性があることに注意してください。
回答:
それを選択して、通常どおりに追加できます。
$('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( ... );
...
それが質問の中心部分だとは感じなかったため、その部分をそのまま残しました。また、執筆の時点では、彼が頭に入れたかったことに関する実例はありませんでした。しかし、はい、それはDOM要素である必要があります。
を使用innerHTML
して、追加のフィールド文字列を連結することができます。
document.head.innerHTML = document.head.innerHTML + '<link rel="stylesheet>...'
ただし、ヘッドに追加する追加のものが最初のロード後にブラウザによって認識されることを保証することはできません。追加のスタイルシートがロードされると、FOUC(スタイルのないコンテンツのフラッシュ)が表示される可能性があります。
私document.write
は何年もAPIを検討していませんが、この種のアクションのために設計されたを使用することもできます。ただし、最初のAJAXリクエストが完了するまで、ページのレンダリングをブロックする必要があります。
最新のブラウザー(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);
一時的な要素(例:)を作成し、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
。
この方法で挿入されたスクリプトは、スタイルが正常に適用されている間、明らかに自動的に実行されないことに注意してください。したがって、スクリプトを実行する必要がある場合は、Ajaxを使用してJSファイルをロードしてから、を使用してその内容を実行する必要がありますeval()
。
body
本当にhead
-タグ内で行うことができますか?私は印象だけが許可されたタグの下にあったbase
、link
、meta
、title
、style
とscript
?
DIV
要素は、HTMLコードを解析するための一時的なコンテナにすぎません。DIV
自体をに挿入しないでくださいHEAD
。その子ノードを挿入する必要があります。回答に追加した例をご覧ください。
temp
。」Node.firstChild()のドキュメントを参照してください。
JavaScriptピュアを試してください:
ライブラリ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').html($('head').html() + '...');
とにかくそれは働いています。JavaScriptオプションは他の人も言った、それも正しい。
.html()
復元されるわけではありません。(この問題の最も一般的なインスタンスであり、最も目に見えるのは、フォームに新しいフィールドを追加するために同様のコードを使用する場合です。value属性はフィールドのデフォルト値を表すため、取得して設定すると、既存のすべてがリセットされますフィールドをデフォルト値に戻します)。html()