Я хотел бы иметь возможность выставлять переменную, ограниченную функциями, которая является частью javascript веб-сайта (не моего).Изменить javascript, чтобы открыть переменную с функциональной областью
Вот упрощенный пример:
function addHooks(e, t, n, i) {
var props = { // Would like to expose this
update: function() { ... },
remove: function() { ... },
find: function() { ... },
};
...
}
В приведенном выше примере, я хотел бы выставить переменную props
так, что мой webextension
может затем получить доступ к этому, чтобы изменить поведение веб-сайта. Обратите внимание, что веб-сайт, который обслуживает этот JS-файл, не под моим контролем, и поэтому я не могу просто изменить исходный файл для экспорта этой переменной. Тем не менее, я полностью открыт для изменения окончательного кода, который запускает браузер (я просто не знаю, как это сделать). Файл javascript, содержащий функцию addHooks
, добавляется динамически с помощью XHR
.
Хотя я понятия не имею, как это осуществить программно, у меня был некоторый успех, установив точку останова, а затем выпустив window.siteController = props
в консоли разработчика браузера. К сожалению, ручное вмешательство пользователя - это не то, что я могу упаковать и распространять.
Один из методов, с которым я работал, - это идея сделать запрос AJAX для JS-файла, изменив его содержимое скрипта и добавив его на страницу.
Существует ли канонический программный способ, с помощью которого может быть выставлена переменная с функцией?
Добавить 'this.props' – azad
Источник javascript не является моим и, следовательно, недоступен для меня, чтобы изменить его на уровне источника. –
вы не можете получить доступ к переменной за пределами ее области ... – Punit