установить содержимое почтового ящика Facebook (редактируемый div) с помощью JavaScript - PullRequest
0 голосов
/ 14 мая 2018

Я пытаюсь создать букмарклет, который при нажатии вставляет определенный текст в активный в данный момент текстовый элемент управления. Не суди.

Итак, это мой код:

(function()
{
    var t="<<< VALUE >>>";
    var a=document.activeElement;
    if(!a) alert("No active element found.");
    if(!!a)
        if(a.nodeName=="TEXTAREA"||a.nodeName=="INPUT")
            if(!a.value) a.value=t;
            else a.value+=t;
    else if(a.nodeName=="DIV"&&a.isContentEditable==true)
        if(!a.textContent) a.textContent=t;
        else a.textContent+=t;
    }
)();

Работает для текстовых областей и входных данных, но не для редактируемых div. Это действительно меняет текст, но потом элемент управления нарушается, и я больше не могу использовать клавишу Backspace или удалить ее.

Как мне установить содержимое такого div без каких-либо торможений?

Лучшее место для проверки это якобы facebook. Сфокусируйтесь на текстовом контроле для новой записи, затем выполните функцию. Вы заметите, что больше не можете использовать клавишу возврата и удалять.

// РЕДАКТИРОВАТЬ

После некоторых комментариев и экспериментов с jsfiddle похоже, что это действительно проблема, связанная с Facebook. Я обновил название соответственно. Все еще сбивает с толку меня, почему это поведение и как его преодолеть.

...