jsdom と jQuery を使用して DOM 本体にスクリプトを追加するにはどうすればよいですか? 実際に使用するという明白な答えは$('body').append('<script src="..."></script>')
、ドキュメントにスクリプトを追加することになりますhead
。
これは、私がテストしている基本的な node.js スクリプトです。
var jsdom = require('jsdom');
jsdom.env(
"http://google.com",
['http://code.jquery.com/jquery-1.6.min.js'],
function(err, window) {
var $ = window.jQuery;
$('body').append('<script src="http://example.com/script.js"></script>');
console.log($('html').html());
}
);
次で始まる何かになります。
<head><script src="http://example.com/script.js?_=1352426933034"></script>...
興味深いことに、<sc ript src="..."></script>
これにスペースを追加すると正しく追加されるため、何か (jsdom だと思います) がこのスクリプトをハイジャックして、キャッシュバスター (?) を追加してヘッダーに配置できます。これを引き起こしているのは何ですか?また、代わりにスクリプトを追加するように、それを防ぐにはどうすればよいですか?
その価値のために、
$ npm ls
/Users/codyaray/dev/proxy/test
└─┬ jsdom@0.2.19
├─┬ contextify@0.1.3
│ └── bindings@1.0.0
├── cssom@0.2.5
├── cssstyle@0.2.3
├── htmlparser@1.7.6
└─┬ request@2.11.4
├─┬ form-data@0.0.3
│ ├── async@0.1.9
│ └─┬ combined-stream@0.0.3
│ └── delayed-stream@0.0.5
└── mime@1.2.7