Похоже, вы устанавливаете его, как описано в репозитории - то есть прямо в chrome: // extensions - но Chrome не поддерживает среду без ящиков в отличие от Tampermonkey.Единственный способ имитировать это создать элемент сценария DOM, назначить код, который вы хотите предоставить, для textContent и добавить, например, к document.body.Как показано в каноническом ответе «Вставьте код в контекст страницы с помощью скрипта контента» .
Следующая проблема - CSP Twitter, который запрещает код в элементах встроенного скрипта.К счастью, как мы видим в сетевом инспекторе devtools для запроса главной страницы, CSP имеет исключение nonce
, которое мы можем использовать повторно:
function runScriptInPageContext(text) {
const script = document.createElement('script');
script.text = text;
script.nonce = (document.querySelector('script[nonce]') || {}).nonce;
document.documentElement.appendChild(script);
script.remove();
}
Примеры использования, запускающие код сразу:
runScriptInPageContext("alert('foo')");
runScriptInPageContext(`(${() => {
alert('foo');
})()`);
Пример использования, представляющего глобальную функцию:
runScriptInPageContext(function foo() {
alert('foo');
});