好吧,所以我有一个问题,我一直在努力上个星期左右,并尝试了一切我知道或可以找到。我正在使用YUI 2.x编辑器,用户将在其中进行大量格式化。我在页面上有一个外部按钮,当用户点击它时,需要将所选文本包装在<span>
中,但它必须执行此操作而不是丢失任何格式。出于某种原因做如下喜欢擦除所有格式的选择:YUI编辑器(RTE):如何用<span>包装选择而不会丢失格式?
var sel = myEditor._getSelection();
var newEl = '<span>' + sel + '</span>';
myEditor.execCommand('inserthtml', newEl);
因此,要解决这个问题,我认为最好的方法是使用_getSelectedElement()
随着_createCurrentElement('span')
加回的风格元素。下面是我到目前为止有:
function createSpan() {
var el = myEditor._getSelectedElement();
var sel = myEditor._getSelection();
// IE support
if (document.selection) {
sel = myEditor._getDoc().selection.createRange();
newText = sel.text;
}
else {
newText = sel;
}
// Create the new element with the old styles
myEditor._createCurrentElement('span', {color: el.style.color, fontSize: el.style.fontSize, fontFamily: el.style.fontFamily});
myEditor._selectNode(myEditor.currentElement[0]);
myEditor.currentElement[0].innerHTML = newText;
return myEditor.currentElement[0];
}
这个伟大的工程,如果_getSelectedElement()
正确用正确的方式返回的元素,但我发现,如果用户选择整个段落,它将返回BODY
。而且由于BODY
没有任何款式,他们又会迷路。
基本上,我需要它的行为像工具栏上的粗体按钮,但使用<span>
而不是<b>
。为什么这么难?
任何想法或建议吗?谢谢!
其实这仍然无法正常工作。任何帮助,将不胜感激。 – Adam 2010-11-02 19:27:35