通过jquery访问tinymce iframe元素
我使用Tinymce编辑器。 我需要尝试使用jquery来访问tinymce iframe …
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 iframe。 一旦我点击该图像,我需要触发一个事件。 帮我。
您可以使用以下命令更轻松地访问iframe文档:
var doc = tinymce.get('comment').getDoc();
编辑:为了达到你想要的效果,你可以在tinymce中捕捉点击事件并用它做你想做的事情。 您需要将此代码插入到自己的tinymce插件中或使用tinymce init参数:
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
尝试:
$("#comment_ifr").contents().filter("img").click(function() { alert('clicked'); });
如果您使用的是版本4,则可以像下面这样访问iframe中的元素:
1.)如果您可以直接访问编辑器对象:
tinymce.init({ setup : function(editor) { editor.dom.$('#thingId'); } });
2.)如果您无法直接访问编辑器对象:
tinymce.activeEditor.dom.$('#thingId');
这是我在tinymce编辑器中获取图像源代码的最终代码
ed.onClick.add(function(ed,evt){ // Firefox if(evt.explicitOriginalTarget){//这是img-element if(evt.explicitOriginalTarget.nodeName.toLowerCase()=='img'){ 警报(evt.explicitOriginalTarget.src); } } // IE else if(evt.target){//这是img-element if(evt.target.nodeName.toLowerCase()=='img'){ 警报(evt.target.src); } } }