gpt4 book ai didi

javascript - 如何从扩展程序获取 Chrome DevTools 源编辑器中的光标位置?

转载 作者:行者123 更新时间:2023-12-03 00:30:14 24 4
gpt4 key购买 nike

我开发Open in Editor Google Chrome DevTools 的扩展程序,允许使用上下文菜单在外部编辑器中打开源文件。

当文件位于 UI 中时,它在大多数情况下(网络面板性能面板样式检查器等)都能完美运行包含行号(如jquery.js:2191)。
唯一的异常(exception)是来源面板。一个chrome.devtools.panels.setOpenResourceHandler回调函数不接收行号。

DevTools 是否有一些 API 可以通过 setOpenResourceHandler() 回调获取源编辑器中光标的位置?

enter image description here

最佳答案

这已根据报告 Chrome Issue 747888 进行了解释:

So first of all, setOpenResourceHandle() is for the cases when users click a link (e.g. a linkified location in console) that normally results in opening a source tab in DevTools, it's not meant to be fired when a file is explicitly opened in the source panel. For changes of the file/position within the sources tab, we've got chrome.devtools.panels.sources.onSelectionChanged (see a layout test for example usage) that was recently brought back by @jacobr).

这里是提到的代码示例:

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);
});
}

关于javascript - 如何从扩展程序获取 Chrome DevTools 源编辑器中的光标位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45142863/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com