ホームページ >ウェブフロントエンド >jsチュートリアル >innerHTML で挿入されたスクリプトが常に実行されないのはなぜですか?それを修正するにはどうすればよいですか?
innerHTML で挿入されたスクリプトの実行
innerHTML を使用して Web ページにスクリプトを挿入することは、スクリプトが DOM に表示される可能性があるため、難しい場合があります。実行に失敗します。これは、スクリプトがページに動的に追加されるときにブラウザがスクリプトの実行を処理する方法が異なるためです。
これを克服するには、DOM でスクリプト要素を再帰的に検索し、それらを実行可能なクローンに置き換える方法があります。ここでは、再帰スクリプト置換関数のステップごとの説明を示します。
function nodeScriptReplace(node) {
function nodeScriptClone(node) {
function nodeScriptIs(node) {
使用例:
挿入されたスクリプトを実行する場合innerHTML を使用して、ドキュメントの本文 (またはその他の任意のコンテナ) でnodeScriptReplace() 関数を呼び出します。
nodeScriptReplace(document.getElementsByTagName("body")[0]);
この再帰的アプローチを利用することにより、検索プロセス中に検出されたすべてのスクリプト要素が次のように置き換えられます。実行可能クローン。innerHTML で挿入されたときにスクリプトが適切に実行されるようにします。
以上がinnerHTML で挿入されたスクリプトが常に実行されないのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。