我们已经为Xinha文本编辑器编写了一个插件来处理脚注.您可以查看:http: //www.nicholasbs.com/xinha/examples/Newbie.html
为了处理Webkit和IE在行尾处理链接的方式存在的一些问题(无法使用游标离开同一行的链接),我们插入一个空白元素并将选择移动到该行,崩溃吧.这在Webkit和Gecko中运行良好,但由于某种原因,moveToElementText正在吐出无效参数异常.我们传递给它的元素无关紧要,功能似乎完全被打破了.但是,在其他代码路径中,此功能似乎有效.
要使用上面的链接重现错误,请单击主文本输入区域,键入任何内容,然后单击带有绿色加号的黄色页面图标,在灯箱对话框中键入任何内容,然后单击"插入".导致问题的代码示例如下:
if (Xinha.is_ie) { var mysel = editor.getSelection(); var myrange = doc.body.createTextRange(); myrange.moveToElementText(newel); } else { editor.selectNodeContents(newel, false); }
有问题的代码位于svn:https: //svn.openplans.org/svn/xinha_dev/InsertNote
这个插件是针对Xinha的一个分支构建的,可以从svn获得:http: //svn.xinha.webfactional.com/branches/new-dialogs
它在上面的代码段中不可见,但是newel已经使用另一个本身附加到DOM的元素附加到dom上.当插入dom元素时,如果你想引用它的兄弟,你必须重新检索你的句柄,因为句柄是无效的(我不确定,但我认为它指的是文档片段内的DOM元素而不是文档内部的一个.)从插入操作重新检索句柄后,moveToElementText停止抛出异常.