Hi,
I'm using the CKEditor 3.0 (r 4148).
What I'm trying to do is to wrap the selected text in between the tags.
The problem is that the tags and the tags from the selected text use namespaces.
It actually works fine in FF but does not in IE.
Below are the sample codes.
I'm using the following method to get the selection:
CKEDITOR.editor.prototype.getSelectedHtml = function()
{
var selection = this.getSelection();
if( selection )
{
var bookmarks = selection.createBookmarks(),
range = selection.getRanges()[ 0 ],
fragment = range.clone().cloneContents();
selection.selectBookmarks( bookmarks );
var retval = "",
childList = fragment.getChildren(),
childCount = childList.count();
for ( var i = 0; i < childCount; i++ )
{
var child = childList.getItem( i );
retval += ( child.getOuterHtml?
child.getOuterHtml() : child.getText() );
}
return retval;
}
};
And the following code tries to wrap the selection:
editor.focus();
if( editor.mode == "wysiwyg" )
{
var selectedText = editor.getSelectedHtml();
if (selectedText)
{
editor.insertHtml('<av:form>' + selectedText + '</av:form>');
editor.focus();
}
}
And the following is the selected text:
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
This is what I get in FF (works fine):
<p>
<av:form>
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
</av:form></p>
And this is what I get in IE (isn't expected):
<p>
<av:formfield name="data4"><av:form>
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
</av:form></av:formfield></p>
Does any one has an idea on how to make it working in IE?
Thanks.
I'm using the CKEditor 3.0 (r 4148).
What I'm trying to do is to wrap the selected text in between the tags.
The problem is that the tags and the tags from the selected text use namespaces.
It actually works fine in FF but does not in IE.
Below are the sample codes.
I'm using the following method to get the selection:
CKEDITOR.editor.prototype.getSelectedHtml = function()
{
var selection = this.getSelection();
if( selection )
{
var bookmarks = selection.createBookmarks(),
range = selection.getRanges()[ 0 ],
fragment = range.clone().cloneContents();
selection.selectBookmarks( bookmarks );
var retval = "",
childList = fragment.getChildren(),
childCount = childList.count();
for ( var i = 0; i < childCount; i++ )
{
var child = childList.getItem( i );
retval += ( child.getOuterHtml?
child.getOuterHtml() : child.getText() );
}
return retval;
}
};
And the following code tries to wrap the selection:
editor.focus();
if( editor.mode == "wysiwyg" )
{
var selectedText = editor.getSelectedHtml();
if (selectedText)
{
editor.insertHtml('<av:form>' + selectedText + '</av:form>');
editor.focus();
}
}
And the following is the selected text:
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
This is what I get in FF (works fine):
<p>
<av:form>
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
</av:form></p>
And this is what I get in IE (isn't expected):
<p>
<av:formfield name="data4"><av:form>
<p>
<av:formfield name="data4">[Data 4](formfield)</av:formfield></p>
<p>
<av:formfield name="data8">[Data 8](formfield)</av:formfield></p>
</av:form></av:formfield></p>
Does any one has an idea on how to make it working in IE?
Thanks.