私は、指定されたテキストをテキスト領域のカーソルの位置に挿入するテキスト領域にangularJSテキストインサータを実装しています。私は少しのグーグルでこの例をオンラインで見つけました。Microsoft EdgeのSelectionStartプロパティに関する問題
ディレクティブの本体は、実施例は、これは、それがの位置を無視し、Microsoftのエッジから離れて、すべてのブラウザ上で絶対的に正常に動作している、ここでhttp://plnkr.co/edit/f496Mh?p=preview
見つけることができ、ここで
app.directive('myText', ['$rootScope', function($rootScope) {
return {
link: function(scope, element, attrs) {
$rootScope.$on('add', function(e, val) {
var domElement = element[0];
if (document.selection) {
domElement.focus();
var sel = document.selection.createRange();
sel.text = val;
domElement.focus();
} else if (domElement.selectionStart || domElement.selectionStart === 0) {
var startPos = domElement.selectionStart;
var endPos = domElement.selectionEnd;
var scrollTop = domElement.scrollTop;
domElement.value = domElement.value.substring(0, startPos) + val + domElement.value.substring(endPos, domElement.value.length);
domElement.focus();
domElement.selectionStart = startPos + val.length;
domElement.selectionEnd = startPos + val.length;
domElement.scrollTop = scrollTop;
} else {
domElement.value += val;
domElement.focus();
}
});
}
}
}])
ですカーソルを移動して、selectionStartとEndプロパティを0に戻します。
私は問題を調査して、divに "add"を変更すると、Edgeでは期待どおりに動作しますが、もし可能ならばdivを使うことができる。
私はここに何かを見逃してしまったのですか、これはブラウザのバグですか?