2012-12-06 29 views
0

我試圖修改debugtools元素面板來添加我自己的自定義數據。該數據與被檢查頁面的網頁DOM無關。我想把自己的東西放在那裏。無法讓ExtensionSidebarPane.setObject工作

所以,我做了以下內容:

function createDebug(token) 

    { 
     console.log("createDebug() " + token); 
     chrome.devtools.panels.elements.createSidebarPane(
      "Token Details: " + token, 
      function(sidebar) { 
       function updateElementProperties() { 
       console.log("updateElementProperties()"); 
       var data = {}; 
       data.token = token; 
       var s = JSON.stringify(data); 
       console.log(s); 
       sidebar.setObject(s, "DATA"); 
       } 
       console.log("createSidebarPane() callback"); 
       updateElementProperties(); 
     }); 
    } 

當我打開devtools,我只是看到我的「令牌的詳細信息」面板的「DATA」子項設置的對象。

我在做什麼錯?

回答

5

我猜文檔與extensionSidebarPane.setObject(string jsonObject, string rootTitle, function callback)混淆它必須是像extensionSidebarPane.setObject(jsonObject, string rootTitle, function callback)一些東西。

的這個becasue你明確使用JSON.stringify()

var data = {}; 
data.token = token; 
var s = JSON.stringify(data); 
console.log(s); 

我已經消除了最後幾行var s = JSON.stringify(data); console.log(s);,它正在轉換爲字符串。

enter image description here

示範

使用您的功能我得到它與下面的代碼工作。

的manifest.json

註冊devtools.html使用devtools.js

清單

{ 
    "name": "Dev Tools", 
    "description":"This demonstrates dev tools API", 
    "version": "1.0", 
    "manifest_version":2, 
    "devtools_page": "devtools.html" 

} 

devtools.html

瑣碎devtools.html

<html> 
<head> 
<script src="devtools.js"></script> 
</head> 
<body> 
</body> 
</html> 

devtools.js

淘汰明確的字符串標記化。

function createDebug(token){ 
    console.log("createDebug() " + token); 
     chrome.devtools.panels.elements.createSidebarPane(
      "Token Details: " + token, 
      function(sidebar) { 
       function updateElementProperties() { 
       console.log("updateElementProperties()"); 
       var data = {}; 
       data.token = token; 
       //Commenting out explicit string conversion 
       //var s = JSON.stringify(data); 
       //console.log(s); 
       sidebar.setObject(data, "DATA"); 
       } 
       console.log("createSidebarPane() callback"); 
       updateElementProperties(); 
    }); 

} 

document.addEventListener("DOMContentLoaded",function(){ 
    createDebug("Trivial Token one"); 
}); 

讓我知道如果你需要更多的信息

+0

謝謝,蘇達。這工作。 – feroze