在提交之前以编程方式编辑 CKEditor 的内容
Editing content of CKEditor programmatically before submit
我在提交之前无法以编程方式编辑 ckeditor 的内容。
我在 html 中输入了一个文件,让用户上传一张图片。通过
将此图像插入到 ckeditor 实例中
CKEDITOR.instances['editor'].editable().insertHtml('<img class="image-content" width="350" height="450" src="' + image + '"' />');
这里的 image 变量是 base64 字节字符串,它变得很长。我想做的是在提交之前以编程方式从 img 标签中删除 src 属性。以下是我的尝试。
var content= CKEDITOR.instances['editor'].getData();
$(content).each(function (index, p) {
if ($(p).find('img').length > 0) {
$(p).find('img').each(function (index, img) {
$(img).attr('src', '');
});
}
});
根据我的发现,ckeditor 的内容包含 p 标签列表。
所以我遍历每个 p 标签,检查它是否包含 img 标签。如果是,请将其 src arrtibute 替换为空字符串。
我通过在最内层循环之后打印它来检查 content,似乎每个 img 的所有 src 标签没有被替换为空字符串。
有谁知道为什么这不起作用?还是我做错了什么?
$(content).find('p img').attr('src','');
...将删除 src
属性。甚至 .find('img')
,如果您在 <p>
之外没有任何 <img>
需要保留其 src
属性。
您的代码可能存在的问题:
- 您在两个嵌套的
.each()
调用中使用相同的标识符 (index
)。 不要!嵌套时使用不同的迭代器(i
+j
, a
+b
, i0
+ i1
+...)
- 您作为引用传递给
.each()
的元素已经是 jQuery 包装器,您不必再次包装它们。即:
.each(function (index, p) {
p.find('img') // and not $(p).find('img') !
...
}
我在提交之前无法以编程方式编辑 ckeditor 的内容。
我在 html 中输入了一个文件,让用户上传一张图片。通过
将此图像插入到 ckeditor 实例中CKEDITOR.instances['editor'].editable().insertHtml('<img class="image-content" width="350" height="450" src="' + image + '"' />');
这里的 image 变量是 base64 字节字符串,它变得很长。我想做的是在提交之前以编程方式从 img 标签中删除 src 属性。以下是我的尝试。
var content= CKEDITOR.instances['editor'].getData();
$(content).each(function (index, p) {
if ($(p).find('img').length > 0) {
$(p).find('img').each(function (index, img) {
$(img).attr('src', '');
});
}
});
根据我的发现,ckeditor 的内容包含 p 标签列表。 所以我遍历每个 p 标签,检查它是否包含 img 标签。如果是,请将其 src arrtibute 替换为空字符串。
我通过在最内层循环之后打印它来检查 content,似乎每个 img 的所有 src 标签没有被替换为空字符串。
有谁知道为什么这不起作用?还是我做错了什么?
$(content).find('p img').attr('src','');
...将删除 src
属性。甚至 .find('img')
,如果您在 <p>
之外没有任何 <img>
需要保留其 src
属性。
您的代码可能存在的问题:
- 您在两个嵌套的
.each()
调用中使用相同的标识符 (index
)。 不要!嵌套时使用不同的迭代器(i
+j
,a
+b
,i0
+i1
+...) - 您作为引用传递给
.each()
的元素已经是 jQuery 包装器,您不必再次包装它们。即:
.each(function (index, p) {
p.find('img') // and not $(p).find('img') !
...
}