2016-10-10 19 views
1

HTMLファイルを読み込んでDOM文書として操作し、別のファイルに戻すNodeスクリプトを作成しています。私は今のところjsdomを使用しています。スクリプト要素を実行せずにDOMに追加する

私がする必要がある操作の1つは、<script>要素を追加して、そのJavaScriptコードがDOMでさらに操作を行う要素です。

問題は、jsdomノードにスクリプトを追加するとすぐにjsdomがそれを実行し、操作の第2段階が直ちに行われるため、出力HTMLが間違っていることです。

私はそれがjantdomではなくPhantomJSでのみ起こると思っていましたが、私は間違っていました。

私はjsdomの使用に特別な制約はなく、PhantomJSなどに切り替えることができますが、私のNodeプログラムの実行中にスクリプトを実行せずにスクリプトを追加したHTMLファイルを生成する必要があります。

これを行う方法はありますか?

+0

後で最終出力を生成する前にそれらを削除しますか?それをユニークに保つために、 "/ *" +何らかの一意の識別子を組み合わせることができますか?それはちょうどハックです。 – Netham

+0

'innerHTML'はスクリプトタグを実行しません(しかし、jsdomの場合についてはわかりません)。 –

答えて

1

これを使用してjsdomでJavascriptの実行を無効にする

jsdom.defaultDocumentFeatures = { 
FetchExternalResources: false, 
ProcessExternalResources: false 
}; 

nodejsはjsdomでも、エラーディセーブル変異イベントを生成した場合は、その後、スクリプト全体をコメントとしてjsのスクリプトを追加することはできません

jsdom.defaultDocumentFeatures = { 
FetchExternalResources: false, 
ProcessExternalResources: false, 
MutationEvents : false 
}; 
+0

それは動作します! :) 感謝万円 –

関連する問題