我有一个将外部脚本添加到页面顶部的功能。现在,我正在为此功能编写一些Jasmine测试,并且存在以下问题:
当我在茉莉花测试中启动该功能时,该脚本将添加到标题中,但是控制台中出现错误:
GET file:url_of_external_script net::ERR_FILE_NOT_FOUND
此错误在我的函数行中发生:
headElement.appendChild(oScript);
仅此函数即可正常工作,但是在茉莉花测试中,将脚本添加到头部是一个问题。奇怪的是,错误消息中脚本URL的前面有标签“ file:”。
这是我的代码:
JS:
function loadScript() {
var headElement = document.getElementsByTagName('HEAD').item(0);
var oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = "url_of_external_script";
headElement.appendChild(oScript);
}
茉莉花测试:
describe('loadScript', function () {
var oScript;
beforeAll(function () {
oScript = document.createElement("script");
oScript.type = "text/javascript";
oScript.src = 'url_of_external_script';
});
afterAll(function () {
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length-1];
document.head.removeChild(script);
});
it('Test if script is loaded into the head', function () {
loadScript();
var scripts = document.getElementsByTagName('script');
var script = scripts[scripts.length-1];
console.log(script);
console.log(script);
expect(script).toEqual(oScript);
});
有人提出了一个想法,为什么茉莉花在将脚本正确添加到头部时会遇到这个问题? 顺便说一下,在这个例子中我不能使用jQuery。