2010-11-30 2 views
3

Я использую редактор Tinymce. При необходимости получить доступ к TinyMCE IFRAME с JQuery Я пытался ...Чтобы получить доступ к элементам iframe tinymce через jquery

var iframe = $('#comment_ifr')[0];//document.getElementById('comment_ifr');// or $('#comment_ifr')[0]; the other is just faster. 
alert(iframe); 
var doc = iframe.document || iframe.contentDocument || iframe.contentWindow && iframe.contentWindow.document || null; 
    //if(!doc) return; 
    //and now jquery 

$("img", doc).click(function() { 
    alert('image clicked'); 
    }); 

---------- 

В моем коде выше, как только изображение, вставленной в TinyMCE фрейма. Как только я нажму на это изображение, мне нужно вызвать событие. Помоги мне.

ответ

5

Вы можете получить легче документа IFrames с помощью:

var doc = tinymce.get('comment').getDoc(); 

EDIT: Чтобы достичь того, чего вы хотите, вы можете поймать событие щелчка внутри TinyMCE и сделать что вы хотите с этим. Вам нужно вставить этот код в собственный TinyMCE плагин или использовать TinyMCE инициализации В параметре:

ed.onClick.add(function(ed, evt){ 

    // Firefox 
    if (evt.explicitOriginalTarget){ // this is the img-element 
     if (evt.explicitOriginalTarget.nodeName.toLowerCase() == 'img'){ 
     console.log(evt.explicitOriginalTarget); 
     alert('image clicked'); 
     } 
    } 
    // IE 
    else if (evt.target) { // this is the img-element 
     if (evt.target.nodeName.toLowerCase() == 'img'){ 
     console.log(evt.target); 
     alert('image clicked'); 
     } 
    } 
}); // end click event 
0

Try:

$("#comment_ifr").contents().filter("img").click(function() { 
    alert('clicked'); 
}); 
+0

Я попытался как ур ответы .. – 2010-11-30 09:41:28

+0

вар док = tinymce.get ('комментарий') getDoc() ; Поскольку я использую версию jquery, я не могу использовать это. – 2010-11-30 09:41:59

+0

Хорошо, просто попробуйте `alert ($ (" # comment_ifr "). Contents());`. Вы что-нибудь получаете? – karim79 2010-11-30 09:43:58

-1

Это мой окончательный код, чтобы получить источник изображения внутри редактора TinyMCE

 
ed.onClick.add(function(ed, evt){ 

    // Firefox 
    if (evt.explicitOriginalTarget){ // this is the img-element 
     if (evt.explicitOriginalTarget.nodeName.toLowerCase() == 'img'){ 
     alert(evt.explicitOriginalTarget.src); 
     } 
    } 
    // IE 
    else if (evt.target) { // this is the img-element 
     if (evt.target.nodeName.toLowerCase() == 'img'){ 
     alert(evt.target.src); 
     } 
    } 
} 
0

Если вы используете версию 4, вы можете получить доступ к элементам iframe следующим образом:

1.) Если у вас есть прямой доступ к объекту редактора:

tinymce.init({ 
    setup : function(editor) { 
    editor.dom.$('#thingId'); 
    } 
}); 

2.) Если вы не имеете прямого доступа к редактору объекта:.

tinymce.activeEditor.dom.$('#thingId'); 
Смежные вопросы