Я новичок в javascript и написании расширений, поэтому мне нужна ваша помощь.
Я пытаюсь создать пункт контекстного меню Safari, который позволит пользователю изменять введенный текст, когда он выбирает часть или весь текст в окне ввода (например, тот, который я задаю в ).
У меня это частично работает, мое расширение отображается в контекстном меню, и при щелчке по нему вызывается мой global.html
файл, который, в свою очередь, вызывает мой Конечный скрипт, inject.js
, файл, который выглядит следующим образом:
function handleMessage(event) {
var range = window.getSelection();//.getRangeAt(0);
console.log("range:"+range);
var selectionParentText = range.startContainer.textContent;
range.startContainer.textContent = selectionParentText.substring(0,range.startOffset) + "[b]" + range.toString() + "[/b]" + selectionParentText.substring(range.endOffset,selectionParentText.length);
}
safari.self.addEventListener("message", handleMessage, false);
В журнале отображается значение выбранного текста, но в 4-й строке выдается ошибка TypeError: Result of expression 'range.startContainer' [undefined] is not an object.
. Как правильно изменить выделенный текст?