首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasmine spy element onload

Jasmine spy element onload
EN

Stack Overflow用户
提问于 2013-12-30 18:48:18
回答 2查看 1.5K关注 0票数 2

我正在动态创建一些脚本,如下所示:

代码语言:javascript
复制
  var js1 = document.createElement('script');
  js1.type = 'text/javascript';
  js1.src = '/js-1.js';
  docmuent.body.appendChild(js1);
  js1.onload = function() {
     var js2 = document.createElement('script');
     js2.type = 'text/javascript';
     js2.src = '/js-2.js';
     document.body.appendChild(js2);
  };

这是我的规范:

代码语言:javascript
复制
  it('Tests inject script', function() {
    expect($("script[src*='/js-1.js']").length).toBeGreaterThan(0);
    expect($("script[src*='/js-2.js']").length).toBeGreaterThan(0);
  });

在js-2上的测试总是失败。如何侦测js-1 onload事件?

EN

回答 2

Stack Overflow用户

发布于 2013-12-30 19:35:07

我想问题可能出在你的订单上。您应该创建script标记,将其添加到body,设置onload,然后设置src

代码语言:javascript
复制
var js1 = document.createElement('script');
js1.type = 'text/javascript';
docmuent.body.appendChild(js1);
js1.onload = function() {
   var js2 = document.createElement('script');
   js2.type = 'text/javascript';
   document.body.appendChild(js2);
   js2.src = '/js-2.js';
};
js1.src = '/js-1.js';
票数 0
EN

Stack Overflow用户

发布于 2014-07-01 19:37:13

您不应该在onload事件中添加标记创建代码。如果我没记错的话,IE只会在脚本标签添加到DOM后立即开始下载文件。

我的建议是将onload事件中的所有内容移到外部,也许在onload事件内部有一个处理函数,以确定文件何时完成加载。这样,您唯一的问题将是测试onload事件内部的函数调用。您可以通过模拟脚本(‘document.createElement’);并返回一个伪对象,您可以像"fakeObject.onload()“一样使用该对象,并在内部辅助函数被调用时进行侦察。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20837973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档