Вызовите вспомогательные функции Firefox из JS - PullRequest
0 голосов
/ 02 октября 2018

Firefox Web Console предлагает снимок экрана вспомогательная функция :

: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 ':'.

Так есть ли способ вызвать API веб-консоли Firefox(или что-то еще) из JS и «сказать» ему выполнить команду снимка экрана?

Firefox Developer Edition 63.0b10 (64-разрядная версия).

Я считаю, что это невозможно.Одной из причин может быть то, что «вредоносные» скрипты на веб-сайтах могут спамить ваш диск скриншотами, снятыми каждую миллисекунду.

1 Ответ

0 голосов
/ 03 октября 2018

Вы не можете.Эти вспомогательные функции выполняются в совершенно ином контексте, чем веб-страница, с совершенно другими привилегиями.Вот исходный код: https://searchfox.org/mozilla-central/source/devtools/shared/screenshot/save.js

Таким образом, с веб-страницы у вас нет к ним доступа.

Единственный способ получить аналогичную функциональность - создать свой собственныйна этом снимок экрана.Затем со своего веб-сайта вы можете проверить, установлена ​​ли надстройка, и отправить ему команду, чтобы сделать снимок экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...