Javascript 从JS调用Firefox助手函数

Javascript 从JS调用Firefox助手函数,javascript,firefox,Javascript,Firefox,Firefox Web控制台提供了一个屏幕截图: 这可能是一个愚蠢的问题,但在我的网站上可以从JavaScript调用这个函数吗?比如说,我有一个按钮,它称之为: function downloadScreenshot() { if(navigator.userAgent.toLowerCase().indexOf('firefox') === -1) { alert("Firefox-only"); return; } eval(":screenshot --sele

Firefox Web控制台提供了一个屏幕截图:

这可能是一个愚蠢的问题,但在我的网站上可以从JavaScript调用这个函数吗?比如说,我有一个按钮,它称之为:

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

    eval(":screenshot --selector '#element-id' --dpr 1");
}
如果我试着运行它,我自然会得到
SyntaxError:expected表达式,得到“:”

那么,有没有办法从JS调用Firefox Web控制台API(或其他)并“告诉”它执行屏幕截图命令呢

Firefox开发者版63.0b10(64位)


我想这是不可能的。其中一个原因是,网站上的“恶意”脚本可能会以每毫秒一次的截图垃圾发送光盘。

你不能。这些助手函数是在与网页完全不同的上下文中执行的,具有完全不同的权限。下面是源代码:

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


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

您使用的是V62+?是的,63.0b10(64位)。显然,eval不识别以冒号开头的字符串作为表达式,所以您真的需要eval吗?首先,我将其放入代码中,但没有
eval
,但结果是相同的。
function downloadScreenshot()
{
    if(navigator.userAgent.toLowerCase().indexOf('firefox') === -1)
    { alert("Firefox-only"); return; }

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