如何从DevTools代码编辑器中获取所选文本?

时间:2013-10-24 16:28:26

标签: google-chrome-extension google-chrome-devtools

我正在尝试从DevTools的编码器中获取所选文本。我可以在onSelectionChanged处理程序中获取selectionInfo,但我不知道如何获取文本。

如何在onSelectionChanged之前获取selectionInfo(当前选择)?

chrome.devtools.panels.sources.createSidebarPane(
   "title",
    function(sidebar) {
        function update(selectionInfo) {
            //alert([selectionInfo.url, selectionInfo.startLine, selectionInfo.endLine, selectionInfo.startColumn, selectionInfo.endColumn]);
            sidebar.setObject(JSON.parse(JSON.stringify(selectionInfo)));
            // How to extract text using data from selectionInfo ???
        }

        update(/*selectionInfo should be there*/);
        chrome.devtools.panels.sources.onSelectionChanged.addListener(update);
    }
);

1 个答案:

答案 0 :(得分:1)

chrome.devtools.panels.elements.onSelectionChanged.addListener的回调不会引起任何争论,参见API documentation。这意味着您的selectionInfo将始终未定义。

要获取所选元素,您可以使用$0变量。因此,您的代码如下所示:

chrome.devtools.panels.elements.createSidebarPane(
   "title",
    function(sidebar) {
        function update() {
            sidebar.setExpression("$0");
        }

        update();
        chrome.devtools.panels.elements.onSelectionChanged.addListener(update);
    }
);

注意:我将chrome.devtools.panels.sources替换为不存在的chrome.devtools.panels.elements