如何使用 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)正在劫持这个脚本,因此它可以添加 cachebuster(?) 并将其放在标题中。是什么导致了这种情况,我该如何防止它发生,所以它会附加脚本?
物有所值,
$ 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