我需要从Angular Summernote编辑器中获取突出显示/选中的文本,但我遇到麻烦(我认为是因为上下文)与IE(11)和FF(量子)。
我可以在控制台上通过window.getSelection().toString()
获取它,但是当我在代码中使用它(或角度方式$window.getSelection().toString()
)时,我在IE和FF中什么也得不到。
我尝试使用document.getSelection()
的超时和document.selection
(由于选择为空或未定义而引发异常), activeElement
,selectionStart
等
我认为在Angular的某个地方我失去了我在哪个窗口的上下文,但我不知道为什么因为它在Chrome中有效。
另外,我尝试使用插件中的editor.createRange
,但它没有给我预期的结果。
这是我的代码:
HTML :
<summernote id="summernote" config="model.comment.summernoteOptions" on-paste="paste(evt)" on-change="change(contents)" ng-model="model.comment.selected.valueTmp"></summernote>
一般控制器:
$scope.paste = function (evt) {
$scope.model.comment.normalizeDom(evt);
};
特定控制器:
this.normalizeDom = function (evt) {
var selected = $window.getSelection().toString();
console.log(selected);
};