Получение переменных из webpackJsonp 
		
		
		
		Добрый день. Не силен в JavaScript и ранее с webpackJsonp вообще не работал. 
	Есть набор скриптов данного фреймворка с функциями, среди которых есть: 1527: function(t, e, a) { "use strict"; (function(t) { var i = a(0) , o = a(26) , n = a(878) , s = a(123) , r = a(134) , c = a(337) , u = a(2) , l = a(51) , h = a(1464) , d = a(36) , p = a(1443) , f = a(880) , m = a(126) , v = a(1528) , b = a(133) , g = a(338) , _ = a(1487) , S = a(85) , y = a(6) , w = a(4) , O = a(782) , C = a(29) , D = a(519) , P = a(1529) , j = null , k = new n.a , T = function(e) { function n(t, a) { var i = e.call(this, a) || this; return i.directServiceUrl = t, i } return Object(i.e)(n, e), ... n.prototype.getRoomData = function(t) { var e, a, i, o, n, s = chat.performerData ? "1" : "", r = (null === (a = null === (e = u.a.getState()) || void 0 === e ? void 0 : e.chatOptions) || void 0 === a ? void 0 : a.chatDirect) && (null === (o = null === (i = u.a.getState()) || void 0 === i ? void 0 : i.chatExtra) || void 0 === o ? void 0 : o.hitUrl) ? "1" : ""; return chat.debug("getRoomData", t), Object(b.a)({ url: this.directServiceUrl, method: "getRoomData", headers: { "X-ab-Split-Group": (null === (n = u.a.getState()) || void 0 === n ? void 0 : n.chatABSplitGroup) || "" }, args: [t, s, r] }) } ... В getRoomData есть локальная переменная n.chatABSplitGroup. Найти место где она инициализируется я не смог. Так как я не могу менять скрипты, но могу выполнить javascrpt код на странице. Необходимо получить ее значение. Возможно ли это в принципе? Вроде в теории можно вызывать функции данного фреймворка по номеру, но тут я совсем понимаю параметры вызова. Заранее спасибо за помощь. Жду ответа.  | 
	
		
 Просто идёшь вверх и смотришь: 
	n.chatABSplitGroup n = u.a.getState() u = a(2) a - это внутренний webpack require webpack - один из самых популярных сборщиков, скачивашь какой-нить пример, билдишь и смотришь как оно там внутрях устроено. Но я те облегчу задачу:), как-то так можно внедриться и получать модули изнутри: 
if(!window['__webpack_require__']) {
  window['__webpack_require__'] = (key => {
    let require;
    webpackJsonp.push([[key],{[key](...a) {require = a[2]}},[[key, key]]]);
    return require;
  })(String(Math.random()));
};
function getChatABSplitGroup() {
  const u = __webpack_require__(2);
  const state = u.a.getState();
  return state && state.chatABSplitGroup || "";
}
console.log(getChatABSplitGroup());
Ток следует помнить, что при следующей версии как циферка 2, так и ключ .a могут поменяться, т.к. являются результатом минимизации.  | 
	
		
 Огромное спасибо. В принципе немного понял как оно устроено.  
	Я так понимаю, что это выгрузка этих функций. Только при запуске Вашего кода в Chrome Debug Console выдает ошибку: VM529:4 Uncaught TypeError: webpackJsonp.push is not a function  | 
	
		
 Странно. М.б. не актуальная версия вебпака там юзается. Тут без кода не разобраться. Там в самом верху должно быть что-то типа  
	window['webpackJsonp'] = ...кинь сюда, посмотрю.  | 
	
		
 Rise, для того он и предназначен.) (или юзескриптов) 
	 | 
	
		
 Нашел только в основном скрипте перед подключением других модулей js следующий код: 
	var n = window.webpackJsonp; window.webpackJsonp = function(e, i, o) { for (var s, r, c = 0, l = []; c < e.length; c++) r = e[c], a[r] && l.push(a[r][0]), a[r] = 0; for (s in i) Object.prototype.hasOwnProperty.call(i, s) && (t[s] = i[s]); for (n && n(e, i, o); l.length; ) l.shift()() } Вроде больше нет нигде ничего похожего.  | 
	
		
 NIIL, а webpackHotUpdate там рядом случаем нет? 
	Если нет, то тут всё сложнее. Это webpack 3 и так просто в него уже не внедриться после загрузки.) Для чего вам это вообще надо? Для юзерскрипта или для чего-то иного? В можете запускать код до загрузки страницы?  | 
	
		
 webpackHotUpdate - не встречал. 
	На самом деле эта переменная нужна для обращения к php скрипту на сайте. Сам же парсер, который я пишу на Delphi, может использовать Chrome компонент, в котором будет выполняться скрипт и присваивать свойству любого поля странице - значение переменной... Это конечно грабли, но пока я не вижу способов это все упростить. Данная переменная генерируется для каждой сессии, поэтому использовать полученную через браузер, а потом вставить в приложение, к сожалению, не получится  | 
	
		
 Тамщем вот это:  
	
Object.defineProperty(Function.prototype, 'c', {
  configurable: true,
  set(value) {
    if(
      typeof value === 'object'
      && 'e' in this
      && 'm' in this
      && !window['__webpack_require__']
    ) {
      window['__webpack_require__'] = this;
      delete Function.prototype['c'];
    }
    Object.defineProperty(this, 'c', {
      writable: true,
      configurable: true,
      enumerable: true,
      value
    });
  }
});
надо запустить до всего кода страницы(в расширениях это document_start, не знаю как ты подрубаешься к браузеру), а дальше, после загрузки, также: 
function getChatABSplitGroup() {
  const u = __webpack_require__(2);
  const state = u.a.getState();
  return state && state.chatABSplitGroup || "";
}
console.log(getChatABSplitGroup());
 | 
	
		
 Спасибо огромное. Попробую 
	 | 
| Часовой пояс GMT +3, время: 12:29. |