无法在 Google Chrome 扩展中获得正确的 Ace 编辑器文本

Unable to get proper Ace Editor Text in Google Chrome Extension

我正在制作 Google Chrome 从 ACE 编辑器获取文本的扩展。但是一旦我创建 ACE 对象,格式就会丢失,我无法获得带有缩进的 Java 代码。结果还包含许多不需要的字符。

我使用了以下代码。

var editor = ace.edit('editor');
var code = editor.getValue();

在我的代码执行之前

我的代码执行后

但是当我 运行 来自开发者控制台的相同代码时,它工作正常。

请提出错误之处或使用 DOM 元素获取带格式的完整代码的任何其他方法?

发生这种情况是因为 chrome 扩展中的代码无法访问页面中的代码 运行ning。 当您在元素的现有编辑器 env property 上调用 ace.edit 并创建一个新编辑器时。 作为解决方法,您可以创建一个内容脚本,该脚本将在页面上下文中 运行,并使用事件或 postMessage 与其余扩展进行通信。有关详细信息,请参阅