Букмарклет для отключения визуального редактора tinymce? - PullRequest
2 голосов
/ 22 июня 2011

Я ищу букмарклет для отключения визуального редактора tinymce.То есть некоторый код, который можно вставить в адресную строку, чтобы отключить редактор (а также добавить в закладки).

У кого-нибудь есть идеи?

Страница, на которой я хочу его использоватьиспользует старую версию TinyMce, я думаю, что та же версия, которая используется на этой странице: http://www.imathas.com/editordemo/demo.html

Просто для повторения, я хочу удалить редактор TinyMce и оставить текстовое поле.

Если вы хотите увидеть функциональность, о которой я говорю, вы также можете посетить страницу этого примера: http://www.matracas.org/sentido/tinymce/examples/full.html и нажать кнопки включения / выключения под редактором.

Проблема здесьчто синтаксис основан на знании идентификатора редактора, который нужно вставить в функцию .get ().

tinyMCE.get('elm1').hide();
tinyMCE.get('elm1').show();

В идеале букмарклет должен использовать только функцию отображения / скрытия tinMCE, но он будет работать для всех редакторов на странице..

Ответы [ 3 ]

1 голос
/ 23 июня 2011

Вот, пожалуйста!

javascript:(function(){var arr=Object.keys(tinyMCE.editors);for(var i=0;i<arr.length;i++){try{tinyMCE.editors[arr[i]].remove();}catch(e){}}})()

Более заметно, но тот же код:

javascript:
(function(){
  var arr=Object.keys(tinyMCE.editors);
  for(var i=0;i<arr.length;i++){
    try{
      tinyMCE.editors[arr[i]].remove();
    }
    catch(e){
    }
  }
}
)()
0 голосов
/ 12 октября 2012

Я добавил средство для удаления TinyMCE в свою коллекцию букмарклетов: http://richardbronosky.github.com/Perfect-Bookmarklets/tinymce.html

У него есть одно важное преимущество перед другими, которые я видел. Он восстанавливает содержимое текстовой области обратно к тому, что было в источнике. Я не знаю, сталкивались ли другие с этим, но у нас есть веб-администратор для наших CMS и TinyMCE, когда удаление оставляет код измененным. Я решил это.

Вот код:

  for(var i=0;i<tinymce.editors.length;i++){
    var tmpId=tinymce.editors[i].id;
    var tmpVal=document.getElementById(tmpId).value;
    tinyMCE.execCommand("mceRemoveControl",true,tmpId);
    document.getElementById(tmpId).value=tmpVal
  }

Также на github: https://github.com/RichardBronosky/Perfect-Bookmarklets/blob/master/tinymce.html

0 голосов
/ 22 июня 2011

Я запускаю все свои букмарклеты с помощью jQuery, хотя это может работать лучше как скрипт greasemonkey в зависимости от того, что вы пытаетесь сделать.

javascript:
function loadScript(url, callback){
        var head = document.getElementsByTagName("head")[0];
        var script = document.createElement("script");
        script.src = url;

        var done = false;
        script.onload = script.onreadystatechange = function()        {
                if( !done && ( !this.readyState 
                                        || this.readyState == "loaded" 
                                        || this.readyState == "complete") )
                {
                        done = true;

                        callback();

                        script.onload = script.onreadystatechange = null;
                        head.removeChild( script );
                }
        };

        head.appendChild(script);
}

loadScript("http://code.jquery.com/jquery-latest.js", function(){
    jQuery('.mceEditor').remove(); }
...