Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Отмена вставки текста из буффера во фрейм wysiwyg-редактора (https://javascript.ru/forum/misc/5154-otmena-vstavki-teksta-iz-buffera-vo-frejjm-wysiwyg-redaktora.html)

mcfly 23.09.2009 11:52

Цитата:

Сообщение от B~Vladi (Сообщение 30723)
keypress, keydown.

Хорошо, как повесить событие onkeydown? Только на примере скрипта, ссылку на который я указал выше

B~Vladi 23.09.2009 11:59

NewTextArea.onkeydown=function(){
...
}

Вобщем, как обычно:)
Если фрейм это не схавает, то можно поступить так:
Вещаем событие на body, проверяем цель события (target==NewTextArea) и если совпадает - обрабатываем.

mcfly 23.09.2009 12:03

Цитата:

Сообщение от B~Vladi (Сообщение 30727)
NewTextArea.onkeydown=function(){
...
}

Вобщем, как обычно:)
Если фрейм это не схавает, то можно поступить так:
Вещаем событие на body, проверяем цель события (target==NewTextArea) и если совпадает - обрабатываем.

Хм.. вставил в функцию инициализации:
var NewTextArea={
  frame:{},
  document:{},
  window:{},
  init:function(frame){
    NewTextArea.frame=frames[frame]?frames[frame]:document.getElementById(frame);//IE, Opera - frames.document, другие - ById.document

    if (!NewTextArea.frame){
      //alert("Ошибка ID");
      return -1;
    }

    //1) получить указатель
    NewTextArea.document=NewTextArea.frame.contentDocument || NewTextArea.frame.document || NewTextArea.frame.contentWindow.document;
    if (!NewTextArea.document){
      //alert("Ошибка iframe");
      return -2;
    }

    NewTextArea.window=NewTextArea.frame.contentWindow || NewTextArea.frame.window;
    if (!NewTextArea.window){
      //alert("window");
      return -2;
    }

    //2) Оформить iframe HTML документ
    var HTML = "<html><head>";
    HTML += "</head><body>";
    HTML += "</body></html>"

    NewTextArea.document.open();
    NewTextArea.document.write(HTML);
    NewTextArea.document.close();

    //3) Установить designMode
    if (NewTextArea.document.designMode){
      NewTextArea.document.designMode='on';
    }else{
      alert("Ошибка designMode");
      return -3;
    }

    NewTextArea.onkeydown=function(){
         alert('');
    }
  }
}


Не работает.. или я тупень? :))))

mcfly 23.09.2009 12:04

Надеюсь я не сильно наглею, если попрошу на моем примере попробовать вставить? АТо у меня чтот не получается :(

B~Vladi 23.09.2009 12:16

Цитата:

Сообщение от mcfly
Не работает.. или я тупень?

Или я... у фрейма (HTMLIFrameElement) может и не быть такого события, поэтому я предложил второй вариант... но у body (или window) тоже может не быть такого события... Надо смотреть, а мне лень:)

mcfly 23.09.2009 12:58

Тогда будем ждать неленивых специалистов...

Riim 23.09.2009 13:50

Мы все здесь ленивые).

mcfly 23.09.2009 13:51

Цитата:

Сообщение от Riim (Сообщение 30755)
Мы все здесь ленивые).

Ленитесь отвечать на сложные вопросы, а на легкие вопросы отвечаете для поднятия (само)оценки? :)))

Kolyaj 23.09.2009 14:37

Мы ленимся отвечать людям, которые ленятся сами что-то проверить.

Riim 23.09.2009 14:49

Я отвечаю если вопрос мне самому интересен (раз уж для себя разобрался, то почему бы и не ответить) или если ответ займет не более двух - трех минут.

Цитата:

Сообщение от mcfly
для поднятия (само)оценки

Не знаю как у других, в моем случае просто желание не только брать, но и оставлять что-то в интернете.


Часовой пояс GMT +3, время: 17:22.