Google Chrome で JavaScript を使用してコントロールを動的に置き換えるという奇妙な問題に直面しています。置き換えられたコントロールは UI に表示されませんが、開発者ツールを使用すると、置き換えられた要素を見つけることができますが、開発者ツールを閉じるまで表示されません。開発者ツールを開いて閉じると、ページを更新するまで問題は再現できなくなります。
これは、要素の outerHTML を置き換えようとしている場合にのみ発生します。
私は最初にjquery's replaceWith
APIを使用しようとしましたが、そのディントヘルプは次のスクリプトに切り替えました-
function chromeOuterHTML(oldElem, outerhtml)
{
var el = document.createElement('div');
el.innerHTML = outerhtml;
var parentNode = oldElem.parentNode;
var range = document.createRange();
range.selectNodeContents(el);
var documentFragment = range.extractContents();
parentNode.insertBefore(documentFragment, oldElem);
parentNode.removeChild(oldElem);
}
問題はクロムに固有のものであり、特定の場合にのみ発生するため、javascript の問題ではないと思います。
どんな助けでも大歓迎です