PhantomJS没有为iframe抛出onload事件

时间:2015-10-01 18:53:33

标签: javascript phantomjs

我正在尝试为我们拥有的iframe组件编写一个测试(使用PhantomJS的karma / mocha / chai)。该组件会向页面添加iframe,并在iframe的onload事件触发时解析承诺。

$('iframe').on('load', function() {
   promise.resolve();
});

它在浏览器中运行良好,但在PhantomJS中使用时似乎永远不会触发事件。

我使用无效的src进行了测试,并且幻像引发了404错误,因此我知道它正在加载某些内容。

PhantomJS + onload有任何已知问题吗?我找不到任何东西。

有没有办法更好地调试这个?

1 个答案:

答案 0 :(得分:1)

我与mocha +幻像有着完全相同的问题,在我的情况下,我通过设置iframe src然后将其附加到DOM来解决它。

// load event fires in browser, not in phantom
var myIframe = document.createElement('iframe');
document.body.appendChild(myIframe);
iframe.src = 'www.example.com';

// load event fires in both
var myIframe = document.createElement('iframe');
iframe.src = 'www.example.com';
document.body.appendChild(myIframe);