Redactor:设置textarea的值并禁用回调

时间:2016-11-11 17:07:54

标签: jquery redactor

我使用Redactor作为WYSIWYG并使用jQuery设置textarea的html。

// Get filename only.
// Example: './foo.json' becomes 'foo'
function getFileNameOnly(filePath) {
  return filePath.split('/').pop().split('.').shift();
}

// ALL THE JSON!
function loadJson() {
  const requireContext = require.context('json!./Mocks', false, /\.json$/);
  const json = {};
  requireContext.keys().forEach((key) => {
    const obj = requireContext(key);
    const simpleKey = getFileNameOnly(key);
    json[simpleKey] = obj;
  });
  return json;
}

(资料来源:Textarea editor Redactor. Insert value with jQuery

然而,当使用此设置代码(正常工作)时,焦点也会转移到Redactor,我想要禁用它。在API文档(https://imperavi.com/redactor/docs/api/code/)中,似乎可以使用以下命令阻止更改回调:

// ./Mocks/99.json
{
    "name": "ninety nine"
}


// ./Mocks/foo.json
{
    "name": "bar"
}

// App.js
let myJson = loadJson();
console.log(myJson['99']);  // > "Object{name:'ninety nine'}"
console.log(myJson['foo']); // > "Object{name:'bar'}"

不幸的是,这并没有阻止专注于Redactor编辑器的回调。知道我在这里做错了吗?

1 个答案:

答案 0 :(得分:0)

最终,我发现这是Redactor的限制。为了防止回调,我们需要销毁对象并使用已插入输入字段的更新文本重新实例化。