我为Google开发了开放编辑器扩展,允许使用上下文菜单在外部编辑器中打开源代码文件。
当UI中的文件位置包含行号(如jquery.js:2191)时,它在大多数情况下(网络面板、性能面板、样式检查器等)都能很好地工作。
唯一的例外是源面板。chrome.devtools.panels.setOpenResourceHandler回调函数不接收行号。
DevTools是否有一些API来从setOpenResourceHandler()回调中获取源编辑器中的游标位置?

发布于 2017-11-07 14:28:14
据报道的铬问题747888已经解释了这一点。
因此,首先,
setOpenResourceHandle()适用于用户单击通常导致在DevTools中打开源选项卡的链接(例如控制台中的linkified位置)的情况,而不是在源面板中显式打开文件时触发该链接。对于在“源”选项卡中文件/位置的更改,我们得到了chrome.devtools.panels.sources.onSelectionChanged(例如,参见布局试验用法),它是最近由@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);
});
}https://stackoverflow.com/questions/45142863
复制相似问题