2016-04-18 2 views
3

Просто чтобы дать фон, отредактировав законченное решение для корзины покупок, предоставляемой нашей POS-системой. Нет кнопки «удалить», и вы должны ввести «0» и обновить, чтобы удалить элемент из корзины. Я хочу кнопку удаления, однако это не относится к их списку приоритетов.Ищет конкретное значение переменной javascript в Инструментах разработчика Chrome

Попытка пройти через спагетти (также использует DevExpress, так что много прыгает), но, похоже, не может найти место, где оно отправляет значение qty в текстовое поле, чтобы обновить корзину. В принципе, я хочу поместить «15» (или что-то) в окно обновления qty и посмотреть, где эта переменная захвачена, поэтому я могу создать кнопку удаления, просто отправив эту функцию «0».

TL; DR Есть ли способ разбить, где переменная установлена ​​на определенное значение? Например, если для переменной установлено значение «15».

Заранее спасибо.

+0

Вы должны изучить «условную точку останова». https://developer.chrome.com/devtools/docs/javascript-debugging – superui

+0

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

+0

Поиск переменных, заданных для определенного значения, невозможно. проверьте все переменные вкладки «Область охвата Chrome». – superui

ответ

0

Вы можете установить точку останова, которая выполняется только при выполнении определенного условия. На вкладке с исходным кодом s откройте файл, в котором есть скрипт, который вы хотите вставить, и щелкните по строке, которую вы хотите разбить при ее выполнении. Затем щелкните его правой кнопкой мыши и выберите Edit Breakpoint. Введите выражение, такое как qty == 15, и разрыв произойдет только в этом состоянии.

Я не думаю, что это именно то, что вы хотите. Похоже, вы хотите сломать точный момент времени, когда значение изменится.

Альтернативой было бы заменить свойство qty на его родительский объект другим свойством, которое уведомляет вас об изменении значения. Таким образом, в консоли нужно ввести что-то вроде этого:

// assume that order is an object that contains qty. 
order._qty = order.qty; 
delete order.qty; 
Object.defineProperty(order, 'qty', { 
    get: function() { 
    return this._qty; 
    }, 
    set: function(newValue) { 
    this._qty = newValue; 
    if (this._qty == 15) { 
     console.trace(); 
    } 
    }, 
    enumerable: true, 
    configurable: true 
}); 

сеттера свойства устанавливает величину на соответствующую сумму, и если количество равно нужное количество, будет вызывать console.trace в Chrome() функции так вы можете точно видеть, как и где он устанавливается.

+0

Любопытно, почему это проголосовало? Я не буду злиться, просто хочу знать, что не так с этим ответом. –

Смежные вопросы