从JS调用Firefox帮助程序功能

时间:2018-10-02 12:17:02

标签: javascript firefox

Firefox Web Console提供了屏幕快照helper function

:screenshot --selector '#element-id' --dpr 1

可能是一个愚蠢的问题,但是可以在我的网站上从JavaScript调用此函数吗?说,我有一些按钮,它叫做:

function downloadScreenshot()
{
    if(navigator.userAgent.toLowerCase().indexOf('firefox') === -1)
    { alert("Firefox-only"); return; }

    eval(":screenshot --selector '#element-id' --dpr 1");
}

如果我尝试运行此命令,我自然会得到SyntaxError: expected expression, got ':'

那么,有什么方法可以从JS调用Firefox Web Console API(或其他)并“告诉”它以执行屏幕截图命令?

Firefox开发人员版63.0b10(64位)。

我认为这是不可能的。原因之一是网站上的“恶意”脚本可能会每隔一毫秒拍摄一次屏幕截图,从而使您的光盘出现垃圾邮件。

1 个答案:

答案 0 :(得分:1)

不能。这些助手功能是在与网页完全不同的上下文中执行的,具有完全不同的特权。这里是源代码:https://searchfox.org/mozilla-central/source/devtools/shared/screenshot/save.js

因此,从网页上,您无权访问它们。

具有类似功能的唯一方法是创建自己的附加组件,以获取屏幕截图。然后,您可以从您的网站上检查是否已安装该加载项,并向其发送获取屏幕截图的命令。