2

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
4

1 に答える 1