2017-02-13 15 views

ответ

0
jQuery(function($){ 
/** 
* add the follow link popup to all TinyMCE instances 
*/ 
if (!window.tinymce) return; 

tinymce.on('AddEditor', function(event) { 

    tinymce.editors.forEach(function(editor) { 
     if (!editor.isFollowLinkAdded) { 
      editor.isFollowLinkAdded = true; 

      editor.on('blur', function(e) { 
       jQuery(e.target.contentDocument.body).find('#followLink').remove(); 
      }); 


      editor.on('click', function(e) { 
       var link = jQuery(e.target).closest('a'); 
       jQuery(e.view.document.body).find('#followLink').remove(); 

       if (link.length) { 
        e.preventDefault(); 
        var POPUP_WIDTH = 215, 
         isRightSide = (jQuery(e.view.document).width()-e.pageX) >= POPUP_WIDTH, 
         boxCss = { 
          top: e.pageY, 
          padding: '6px 10px', 
          position: 'absolute', 
          backgroundColor: '#ffffff', 
          border: '1px solid #a8a8a8', 
          borderRadius: '2px', 
          boxShadow: '0 1px 3px rgba(0, 0, 0, 0.2)', 
          color: '#666666', 
          cursor: 'pointer', 
          whiteSpace: 'nowrap', 
          zIndex: 502 
        }; 
        boxCss[(isRightSide) ? 'left' : 'right'] = (isRightSide) ? e.pageX : jQuery(e.view.document).width()-e.pageX; 

        jQuery('<a/>', { 
         href: link.attr('href'), 
         text: link.attr('href'), 
         target: '_blank' 
        }).css({ 
         cursor: 'pointer', 
         display: 'inline-block', 
         maxWidth: '100px', 
         overflow: 'hidden', 
         textOverflow: 'ellipsis', 
         whiteSpace: 'nowrap' 
        }).wrap(
         jQuery('<p/>', { 
          text: 'Click to follow: ', 
          id: 'followLink', 
         }).on('click', function(){ 
          var win = window.open(link.attr('href'), '_blank'); 
          win.focus(); 
         }).css(boxCss) 
        ).parent().appendTo(e.view.document.body); 
       } 
      }); 
     } 
    }); 

    }, true); 

});

0

Последняя версия TinyMCE 4 (4.5.3) включает в себя возможность открытия ссылки в меню правой кнопки мыши редактора - нет необходимости писать собственный код.

+0

Спасибо за ответ. Я могу быть дополнительным вариантом, однако было бы более удобным и понятным отображать всплывающее окно с последующим обращением, когда пользователь нажимает на любую ссылку в редакторе, как это делает Документы/таблицы Google. – Fisk