Javascript 有没有办法检查我的脚本是否在phantomjs中运行?
我正在开发一个框架,我想支持phantomjs。有没有办法检查页面JavaScript是在phantomjs下运行还是在karma+phantomjs下运行?我只使用karma+phantomjs进行了测试,但没有找到任何可以用来检查环境的全局变量。我以为会有一个global.phantom变量或类似的东西。这些环境之间有区别吗?根据本文:因果报应在iframe中运行,因此phantomjs变量不存在于这个iframe中。所以我们所要做的就是因果报应而关闭iframe。为此,我们必须使用以下设置:Javascript 有没有办法检查我的脚本是否在phantomjs中运行?,javascript,phantomjs,karma-runner,Javascript,Phantomjs,Karma Runner,我正在开发一个框架,我想支持phantomjs。有没有办法检查页面JavaScript是在phantomjs下运行还是在karma+phantomjs下运行?我只使用karma+phantomjs进行了测试,但没有找到任何可以用来检查环境的全局变量。我以为会有一个global.phantom变量或类似的东西。这些环境之间有区别吗?根据本文:因果报应在iframe中运行,因此phantomjs变量不存在于这个iframe中。所以我们所要做的就是因果报应而关闭iframe。为此,我们必须使用以下设置
config.set({
client: {
useIframe: false
}
});
现在我们可以简单地使用!!窗口。_幻影
或!!window.callPhantom
检查是否存在幻影。然而,这是部分解决方案。我仍然在寻找一个更好的,它可以看到幻影,甚至在一个iframe
我最终得到了这样的代码:
var global = (function () {
return this;
})();
var phantom = global._phantom;
if (!phantom && global.__karma__ && global.frameElement)
phantom = global.parent._phantom;
var isPhantom = !!phantom;
无论是因果报应还是非因果报应,这都是有效的,我猜香草幻影也是有效的。还有可能help@ebo没有,但我找到了解决办法。:-)@阿乔姆。对------------------------不是
!!window.callPhantom==true,然后设置useIframe:false
?@ArtjomB。它是未定义的
。实际上,该属性不存在,因此未定义它,而不是未定义的:D