【问题标题】:How to get cursor position in a Chrome DevTools source editor from extension?如何从扩展获取 Chrome DevTools 源代码编辑器中的光标位置?
【发布时间】:2017-12-21 21:50:09
【问题描述】:
【问题讨论】:
标签:
javascript
google-chrome
google-chrome-extension
google-chrome-devtools
【解决方案1】:
这已根据报告的Chrome Issue 747888进行了解释:
首先,setOpenResourceHandle() 适用于用户单击链接(例如控制台中的linkified 位置)通常会导致在 DevTools 中打开源选项卡的情况,它并不意味着当文件在源面板中显式打开。对于源选项卡中文件/位置的更改,我们有最近由 @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);
});
}