2016-04-18 22 views
3

只是爲了給出一個背景,爲我們的POS系統提供的購物車編輯一個罐裝解決方案。沒有「刪除」按鈕,您必須輸入「0」並更新才能從購物車中刪除商品。我想要一個刪除按鈕,但是這不在他們的優先列表中。在Chrome開發人員工具中尋找特定的javascript變量值

試圖通過意大利麪條(利用DevExpress,以及大量的跳躍),但似乎無法找到它在文本框中發送數量值更新購物車的地方。基本上,我想把'15'(或其他東西)放到qty更新框中,看看那個變量被捕獲的位置,所以我可以通過發送那個函數'0'來創建一個刪除按鈕。

TL; DR是否有辦法打破變量設置爲特定值的位置?例如,當一個變量被設置爲'15'時。

在此先感謝。

+0

你應該研究'條件斷點'。 https://developer.chrome.com/devtools/docs/javascript-debugging – superui

+0

主要問題是我無法找到該文本框的值甚至被使用的位置。我不知道有條件檢查哪個變量 - 試圖找出答案。 – justiceorjustus

+0

找到設置爲特定值的變量是不可能的。檢查Chrome Source標籤範圍的所有變量。 – superui

回答

0

您可以放置​​一個只有在滿足某個條件時才執行的斷點。在來源 s選項卡中,打開包含要插入中斷的腳本的文件,並在執行時單擊要中斷的行。然後右鍵單擊它並選擇編輯斷點。輸入一個表達式,例如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 
}); 

的setter屬性將數量設置爲適當的量,如果量等於所需金額,將調用Chrome的console.trace()函數,以便你可以清楚地看到它的設置方式和位置。

+0

好奇,爲什麼這個投票呢?我不會生氣,只是想知道這個答案有什麼問題。 –

相關問題