首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何访问StacksEditor以从用户脚本中设置减价?

如何访问StacksEditor以从用户脚本中设置减价?
EN

Stack Apps用户
提问于 2022-06-10 23:29:45
回答 1查看 72关注 0票数 2

我是阿童木试图恢复的自动编辑更正脚本。自2015年以来,我已经对其进行了大量的更新、改进和使用Stack Exchange的更改。

坚持的一件事是从新的StackApps WYSIWYG编辑器中设置标记,该编辑器目前用于元站点上的答案。我可以在页面中找到元素并使用jQuery获取它的标记:

代码语言:javascript
复制
$('.post-editor .markdown').text()

但是,在修改之后,我还没有弄清楚如何将标记返回到编辑器中。我发现以下几点看起来很有希望:

代码语言:javascript
复制
StackExchange.stacksEditor.getInstanceFromElement($('.post-editor'))

但当我运行它时,我得到:

未定义的TypeError:t.dataset是未定义的L https://meta.stackexchange.com/Content/Js/stacks-editor.en.js?v=209d11c01c46:1

我还尝试在[0]选择器之后使用jQuery,以防编辑器需要普通的JavaScript对象。然而,这也产生了同样的错误:

代码语言:javascript
复制
StackExchange.stacksEditor.getInstanceFromElement($('.post-editor')[0])

我找到了另一个在using中封装类似内容的用户脚本,但是我得到了相同的结果:

代码语言:javascript
复制
StackExchange.using("stacksEditor",function(){StackExchange.stacksEditor.getInstanceFromElement($('.post-editor'))})

如何从用户脚本获得对StacksEditor的访问,以便在自动编辑后设置标记?

EN

回答 1

Stack Apps用户

回答已采纳

发布于 2022-06-11 00:19:58

您要查找的元素(是的,它应该是一个普通的DOM元素,因为getInstanceFromElement希望能够访问它上的dataset属性)不是带有post-editor CSS类的编辑器包装器,而是textarea后代:

代码语言:javascript
复制

getInstanceFromElementdataset上访问stacksEditorInstanceId,如您所见,它对应于textarea的data-stacks-editor-instance-id属性。

因此,以下内容将成功地返回实例:

代码语言:javascript
复制
const instance = StackExchange.stacksEditor.getInstanceFromElement( 
    document.getElementById("js-stacks-editor-content")
);
票数 2
EN
页面原文内容由Stack Apps提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackapps.com/questions/9431

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档