【发布时间】:2011-02-19 04:47:24
【问题描述】:
我有一些代码可以返回选择的文本,我可以将该字符串分配给一个变量,但现在我只需要两个变量,一个用于选择之前的文本,一个用于选择之后的文本. 这是获取选择的代码:
function findSelection(){ //returns the selection object.
var userSelection;
if (window.getSelection) {userSelection = window.getSelection();} // Mozilla Selection object.
else if (document.selection){userSelection = document.selection.createRange();} //gets Microsoft Text Range, should be second b/c Opera has poor support for it.
if (userSelection.text){return userSelection.text} //for Microsoft Objects.
else {return userSelection} //For Mozilla Objects.
}
然后我找到 anchorOffset 和 focusOffset 来找到插入符号的位置。我尝试使用这些来修改范围对象,如下所示:
var range = document.createRange();
range.setStart(textdiv,0);
range.setEnd(textdiv,5);
textdiv 是一个变量,用于保存用户点击的最后一个 div。问题是 Firefox 只是在range.setStart(textdiv,0); 行给了我一个"Security error" code: "1000"。
有没有更简单的方法来做这件事?我真的只需要文字而已。
【问题讨论】:
-
这个
findSelection函数有缺陷,正如我在我(显然被忽略)回答你关于这段代码的问题中解释的那样:stackoverflow.com/questions/2820650/…
标签: javascript range selection