Вставка текста в дизайн-режиме Iframe, запускаемый кнопкой за пределами Iframe - PullRequest
0 голосов
/ 22 декабря 2011

У меня есть редактируемый iframe, и я хотел бы вставить текст в месте расположения курсора, когда пользователь нажимает кнопку, которая находится за пределами iframe. Я пытаюсь использовать следующий код для вставки текста:

function insertAtCursor(iframename, text, replaceContents) {
      if(replaceContents==null){replaceContents=false;}
      if(!replaceContents){//collapse selection:
         var sel=document.getElementById(iframename).contentWindow.getSelection()
         sel.collapseToStart()
      }
      document.getElementById(iframename).contentWindow.document.execCommand('insertHTML', false,     text);
};

Я думаю, что это не удается, потому что фокус меняется, когда я нажимаю кнопку. Однако я не уверен, как это исправить. Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 22 декабря 2011

Вы правы в том, что смещение фокуса влияет на вставку кода.

Используя библиотеку jQuery, вы можете сместить фокус обратно на iframe в привязке щелчка кнопки:

$('#button').click(function(event) {
    event.preventDefault();
    $('#iframe').focus();
    insertAtCursor('iframe', 'test-text', null);
});

В чистом javascript сместите фокус перед выполнением insertAtCursor () следующим образом:

document.getElementById('iframe').focus()
...