2017-12-28 18 views
0

私は大きなフォームを作成し、それを動作させるには少しテンプレートが必要です。そうIE11フォームテンプレート、innerHTML&outerHTMLの問題

Before

After

同様 だから私はそれを読んで、ボタンに追加し、ID = "sponsor_template"と私のHTMLコードでHTMLのDIVを持っていると思います。 は、ここに私のjsコード

var sponsorBTN = document.querySelector('[name="sponsors_add"]'); 
if (sponsorBTN !== null) { 
    sponsorBTN.addEventListener('click', function() { 
     var s_template = document.querySelector('[id="sponsor_template"]'); 
     sponsorBTN.insertAdjacentHTML('beforeBegin', s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"') 
                   .replace('display:none', '')) 
    }) 
} 

それはIE以外の任意のブラウザ上で完璧に動作しています。
私が知っている唯一の問題は、問題が発生する可能性があるのはinnerHTML/outerHTMLです。これはIEでconsole.logを実行すると出力が不完全なためです。 これは、HTMLの7行目の後に切り捨てられます。ここで

JSFiddleは、この問題にある:https://jsfiddle.net/tdxkiller/b5m0t7xm/

答えて

0

このラインはあなたの問題です:

s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"').replace('display:none', '') 

それは「display:none」との問題を抱えている理由は、私はよく分かりません。私は ":"文字にいくつかの問題があると思います。しかし、私は以下にそれを変更し、それが働いた:

s_template.outerHTML.replace('id="sponsor_template"', 'name="sponsor"').replace('none', 'block') 
+0

うん、私はそれについて考えていたと分かった全体outerHTMLのはconsole.log()がIE11に正しく表示さdoesntの場合でもので、それはまだだろう何かを見せます。さらに調査した結果、IE11は 'display:none'を' display:none; 'に変換することが分かりました。 –

関連する問題