Использовать целевой атрибут:
<a target="_parent" href="http://url.org">link</a>
Я искал плагин textarea координат каретки для meteor-autocomplete , поэтому я оценил все 8 плагинов на GitHub. Победителем, безусловно, является textarea-caret-position из Компонента .
Зеркало <div>
создается вне экрана и в стиле точно так же, как <textarea>
. Затем текст текстовой области до каретки копируется в div, и сразу после него вставляется <span>
. Затем текстовое содержимое диапазона устанавливается равным оставшемуся тексту в текстовой области, чтобы точно воспроизвести упаковку в поддельном div.
Это единственный метод, который гарантированно обрабатывает все крайние случаи, относящиеся к переносу длинных строк. Он также используется GitHub для определения позиции выпадающего списка пользователей @ .
Я не думаю, что это можно сделать в любом браузере. Кто-то сделал это в IE6, но он не работает в FF или Opera (AFAIK). Возможно, вы сможете заставить его работать во всех браузерах.
Примечание: этот ответ описывает, как добраться символьные координаты из text-cursor/caret. Для нахождения пиксельных координат необходимо будет расширить это далее.
первая вещь помнить состоит в том, что курсор может быть в трех состояниях
модель IE использует Объект document.selection, от этого мы можем добраться объект TextRange, который предоставляет нам доступ к выбору и таким образом позиции (позициям) курсора.
модель/Opera FF использует удобный [входной] .selectionStart переменных и selectionEnd.
Обе модели представляют регулярный ative курсор как выбор нулевой ширины с левым связанным, являющимся позицией курсора.
, Если поле ввода не фокусируется, можно найти, что ни один не установлен. Я имел хороший успех со следующим кодом для вставки части текста в текущей позиции курсора, также заменяя текущий выбор, если существующий. В зависимости от точного браузера, YMMV.
function insertAtCursor(myField, myValue) {
/* selecion model - ie */
if (document.selection) {
myField.focus();
sel = document.selection.createRange();
sel.text = myValue;
}
/* field.selectionstart/end firefox */
else if (myField.selectionStart || myField.selectionStart == '0' ) {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos)
+ myValue
+ myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
myField.focus();
}
// cursor not active/present
else {
myField.value += myValue;
}
Примечание Ошибки: ссылки правильно не повышаются в главном параграфе.
объект Выбора: http://msdn.microsoft.com/en-us/library/ms535869 (По сравнению с 85) объектом .aspx
TextRange: http://msdn.microsoft.com/en-us/library/ms535872 (По сравнению с 85) .aspx
If you want to guarantee numPartitions array size
Что это означает?
– Koray Tugay
30 November 2018 в 14:31