我使用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编辑器的回调。知道我在这里做错了吗?
答案 0 :(得分:0)
最终,我发现这是Redactor的限制。为了防止回调,我们需要销毁对象并使用已插入输入字段的更新文本重新实例化。