現在の文書DOMの<head>
タグにHTML文字列を挿入する必要があります.1つはdiv要素を作成し、innerHTMLを埋め、item-byをコピーしますあなたの<head>
要素に-itemを入力します。しかし、FF30ではの両方ともの両方のメソッドが完全に機能し、ブラウザは追加されたSTYLE/SCRIPT要素を処理しますが、これらのメソッドはIE/Operaでは以下の理由で機能しません。文書のHEADに動的にHTML文字列を挿入する
文字列を<head>
に直接挿入して処理できる他の方法はありますか?
(これらはIE /オペラに失敗する理由)
方法1 - innerHTMLのは解析できないのでをを失敗/ META、スタイル、文字列内のスクリプト要素
insertHtml = function(parentElem,htmlStr){
var frag = document.createDocumentFragment();
var temp = document.createElement('div');
temp.innerHTML = htmlStr;
// at this point, temp.childNodes.length=0
while (temp.firstChild) {
frag.appendChild(temp.firstChild);
}
// use native DOM methods to insert the fragment
parentElem.insertBefore(frag, parentElem.childNodes[0]);
}
を無視
方法2 - が追加されました。追加されたSTYLE/SCRIPT要素がブラウザによって処理されないため、
document.getElementsByTagName("head")[0].innerHTML = htmlStr
// although this populates the <head> tag successfully
最初の関数を使用しても 'div'を 'head'に変更するとどうなりますか? – Greg
その後、IE/OperaはinnerHTMLの割り当て後にクラッシュします。どうやらあなたはcreateElement( 'head')を作成することはできません! –