2012-12-06 2 views
0

내 맞춤 데이터를 추가하도록 debugtools 요소 패널을 수정하려고합니다. 이 데이터는 검사중인 페이지의 웹 페이지 DOM과 관련이 없습니다. 나는 거기에 내 물건을 넣고 싶다. 나는 DevTools로를 열 때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(); 
     }); 
    } 

, 나는 그냥 "토큰 정보"패널의 "DATA"하위 항목에 설정된 객체를 참조하십시오

그래서, 나는 다음과 같은했다.

내가 뭘 잘못하고 있니?

답변

5

설명서가 extensionSidebarPane.setObject(string jsonObject, string rootTitle, function callback)과 혼동 스럽다는 것은 extensionSidebarPane.setObject(jsonObject, string rootTitle, function callback)과 같은 것입니다. 이것의

를 변경할 수 없기은 명시 적으로 내가 마지막 라인 var s = JSON.stringify(data); console.log(s);을 제거하고 그것이 작동 JSON.stringify()

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

사용하여 문자열로 변환된다.

enter image description here

데모

함수를 사용하여 내가 코드를 다음과 같이 작업을 얻었다. 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 행의 manifest.json

등록 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

감사합니다, Sudarshan 더 많은 정보가 필요하면 알려주세요. 그게 효과가 있었어. – feroze