能发图片就好了。那我详细说一下是怎么出现的吧!在其他网页上找一个textarea或者input text标签(不是文本),然后复制到编辑器中去。编辑器中显示的是解析过后的,也就是长方形元素。
正确的显示应该是文本,或者直接不能复制进去。
下面是编辑器处理粘贴内容的源码,被我稍稍修改了下。没有出现上面所述问题。
希望作者指导下,这样修改会不会带来其他问题。谢谢作者大大了!
// 处理粘贴的内容
function handle(elem) {
if (!elem || !elem.nodeType || !elem.nodeName) {
return;
}
var $elem;
var nodeName = elem.nodeName.toLowerCase();
var nodeType = elem.nodeType;
var childNodesClone;
// 只处理文本和普通node标签
if (nodeType !== 3 && nodeType !== 1) {
return;
}
$elem = $(elem);
// 如果是容器,则继续深度遍历
if (nodeName === 'div') {
childNodesClone = [];
$.each(elem.childNodes, function (index, item) {
// elem.childNodes 可获取TEXT节点,而 $elem.children() 就获取不到
// 先将 elem.childNodes 拷贝一份,一面在循环递归过程中 elem 发生变化
childNodesClone.push(item);
});
// 遍历子元素,执行操作
$.each(childNodesClone, function () {
handle(this);
});
return;
}
if (legalTagArr.indexOf(nodeName) >= 0) {
// 如果是合法标签之内的,则根据元素类型,获取值
resultHtml += getResult(elem);
} else if (nodeType === 3) {
// 如果是文本,则直接插入 p 标签
resultHtml += '
' + elem.textContent + '
';} else if (nodeName === 'br') {
//
保留
resultHtml += '
';
}
else {
**//------------------------这里被我修改了------------------------------------
var ignoreTag=[ //这里被我修改了。可以显示
'meta', 'style', 'script', 'object', 'form', 'iframe', 'hr', 'textarea', 'input',
'META', 'STYLE', 'SCRIPT', 'OBJECT', 'FROM', 'IFRAME', 'HR', 'TEXTAREA', 'INPUT'
];
// 忽略的标签
if (ignoreTag.indexOf(nodeName) >= 0) {
return;
}
//------------------------这里被我修改了------------------------------------**
// 其他标签,移除属性,插入 p 标签
$elem = $(removeAttrs(elem));
// 注意,这里的 clone() 是必须的,否则会出错
resultHtml += $('
}
}