0

我正在像这样初始化SCEditor

var mytextarea = $('textarea[name="one"])[0];

sceditor.create(mytextarea, 
{
    format: 'xhtml',
    style: '../default.min.css',
    // ...
});

现在我需要从 SCEditor中获取textarea 的名称。我的目标:在用户在 SCEditor 中输入文本或使用自定义插件后,文本区域名称/id 将与新内容一起传递到具有相同 ID 的外部 HTML 预览字段。(页面上有几个编辑器。)

我还没有找到任何方法如何"one"从 SCEditor 中获取 textarea ( ) 的名称。这是一个插件的代码片段,可以访问该editor变量:

// Insert-Formula Command
sceditor.command.set('insertformula', {
    // wysiswyg mode 
    exec: function(caller) {
       var editor = this;
       console.log(editor);  // cannot find the textarea's name here

API没有透露这样的功能:https ://www.sceditor.com/api/sceditor/

我试图理解源代码(textareaoriginal在 init() 函数中传递)但我找不到任何方法来返回 textarea/original:https ://github.com/samclarke/SCEditor/blob /master/src/lib/SCEditor.js

然后我想我可以将 init 之后的名称与编辑器的 create() 绑定并稍后访问它,例如:

sceditor.textarea_name = "one";

但这也不起作用。

这是一个用于测试的 JSFiddle:http: //jsfiddle.net/kai_noack/0gLhtabq/10/

--

更新:

我可以看到[[Scopes]]控制台输出(jsfiddle)中有名称。也许可以访问它?

控制台输出 sceditor

我需要得到这个textarea#one部分。

4

1 回答 1

0

好吧,我找到了一个不错的解决方案:

将 textarea 名称作为方法id中的传递create()

sceditor.create(mytextarea, 
{
    format: 'xhtml',
    style: '../default.min.css',
    // ...
    id: mytextarea_id,
});

并在 Sceditor 插件中使用editor.opts.id

// Insert-Formula Command
sceditor.command.set('insertformula', {
    // wysiswyg mode 
    exec: function(caller) {
       var editor = this;
       console.log(editor.opts.id);  // cannot find the textarea's name here

完毕

于 2020-04-20T15:25:57.667 回答