首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从扩展中获取Chrome DevTools源代码编辑器中的光标位置?

如何从扩展中获取Chrome DevTools源代码编辑器中的光标位置?
EN

Stack Overflow用户
提问于 2017-07-17 11:18:59
回答 1查看 2.8K关注 0票数 27

我为Google开发了开放编辑器扩展,允许使用上下文菜单在外部编辑器中打开源代码文件。

当UI中的文件位置包含行号(如jquery.js:2191)时,它在大多数情况下(网络面板、性能面板、样式检查器等)都能很好地工作。

唯一的例外是源面板chrome.devtools.panels.setOpenResourceHandler回调函数不接收行号。

DevTools是否有一些API来从setOpenResourceHandler()回调中获取源编辑器中的游标位置?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-07 14:28:14

据报道的铬问题747888已经解释了这一点。

因此,首先,setOpenResourceHandle()适用于用户单击通常导致在DevTools中打开源选项卡的链接(例如控制台中的linkified位置)的情况,而不是在源面板中显式打开文件时触发该链接。对于在“源”选项卡中文件/位置的更改,我们得到了chrome.devtools.panels.sources.onSelectionChanged (例如,参见布局试验用法),它是最近由@jacobr带回的。

下面是前面提到的代码示例:

代码语言:javascript
复制
function extension_testElementsOnSelectionChanged(nextTest)
{
    function onSelectionChanged()
    {
        webInspector.panels.elements.onSelectionChanged.removeListener(onSelectionChanged);
        output("onSelectionChanged fired");
        nextTest();
    }
    webInspector.panels.elements.onSelectionChanged.addListener(onSelectionChanged);
    webInspector.inspectedWindow.eval("inspect(document.body.children[0]), 0");
}

function extension_testSourcesOnSelectionChangedShowFile(nextTest)
{
    function onSelectionChanged(selectionInfo)
    {
        webInspector.panels.sources.onSelectionChanged.removeListener(onSelectionChanged);
        output("sources onSelectionChanged fired, selectionInfo:");
        dumpObject(selectionInfo, {url: "url"});
        nextTest();
    }
    webInspector.panels.sources.onSelectionChanged.addListener(onSelectionChanged);
    evaluateOnFrontend("InspectorTest.showScriptSource(\"test-script.js\")");
}

function extension_testSourcesOnSelectionChangedShowFileAndLine(nextTest)
{
    webInspector.inspectedWindow.eval("location.href", function(inspectedPageURL) {
        function onSelectionChanged(selectionInfo)
        {
            webInspector.panels.sources.onSelectionChanged.removeListener(onSelectionChanged);
            output("sources onSelectionChanged fired, selectionInfo:");
            dumpObject(selectionInfo, {url: "url"});
            nextTest();
        }
        webInspector.panels.sources.onSelectionChanged.addListener(onSelectionChanged);

        var basePath = inspectedPageURL.replace(/\/[^/]*$/, "/");
        webInspector.panels.openResource(basePath + "resources/test-script.js", 2);
    });
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45142863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档