我为Google Chrome DevTools开发了Open in Editor扩展程序,允许使用上下文菜单在外部编辑器中打开源文件。
在UI中的文件位置时,它在大多数情况下(网络面板,性能面板,样式检查器等)都能正常工作包含一个行号(如jquery.js:2191
)
唯一的例外是 来源面板 。 chrome.devtools.panels.setOpenResourceHandler回调函数未收到行号。
DevTools是否有一些API可以从setOpenResourceHandler()
回调中获取源编辑器中光标的位置?
答案 0 :(得分:2)
已根据报告Chrome Issue 747888解释了这一点:
首先,
setOpenResourceHandle()
适用于用户点击链接(例如控制台中的linkified
位置)通常导致在DevTools中打开源选项卡的情况,它是在源面板中显式打开文件时不打算触发。要更改来源标签中的文件/位置,我们已经获得了{em> @jacobr 最近带回的chrome.devtools.panels.sources.onSelectionChanged
(请参阅layout test示例用法) )。
以下是提到的代码示例:
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);
});
}