Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法检查我的脚本是否在phantomjs中运行?_Javascript_Phantomjs_Karma Runner - Fatal编程技术网

Javascript 有没有办法检查我的脚本是否在phantomjs中运行?

Javascript 有没有办法检查我的脚本是否在phantomjs中运行?,javascript,phantomjs,karma-runner,Javascript,Phantomjs,Karma Runner,我正在开发一个框架,我想支持phantomjs。有没有办法检查页面JavaScript是在phantomjs下运行还是在karma+phantomjs下运行?我只使用karma+phantomjs进行了测试,但没有找到任何可以用来检查环境的全局变量。我以为会有一个global.phantom变量或类似的东西。这些环境之间有区别吗?根据本文:因果报应在iframe中运行,因此phantomjs变量不存在于这个iframe中。所以我们所要做的就是因果报应而关闭iframe。为此,我们必须使用以下设置

我正在开发一个框架,我想支持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