Próbuję wyjść wybrany tekst w moim kodzie javascript. Stworzyłem funkcję, która otrzyma wybrany tekst i chcę tylko go wyprowadzić, gdy przycisk przesyłania został wyjście.

Oto javascript, aby uzyskać wybrany HTML lub tekst.

function getSelectionHtml() {
    var html = "";
    if (typeof window.getSelection != "undefined") {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var container = document.createElement("div");
            for (var i = 0, len = sel.rangeCount; i < len; ++i) {
                container.appendChild(sel.getRangeAt(i).cloneContents());
            }
            html = container.innerHTML;
        }
    } else if (typeof document.selection != "undefined") {
        if (document.selection.type == "Text") {
            html = document.selection.createRange().htmlText;
        }
    }
   document.write(html);

}

Oto mój kod do wyprowadzania innych treści plus funkcję powyżej (ale nie pojawi się po prostu)

(function() 
{
    tinymce.PluginManager.add('my_mce_button', function( editor, url ) 
    {
        editor.addButton( 'my_mce_button', 
        {
            icon: false,
            text: 'Tooltip',
            onclick: function() 
            {
                editor.windowManager.open( 
                {
                    title: 'Tooltip Option',
                    body: 
                    [
                        {
                            type: 'textbox',
                            name: 'textboxtooltipName',
                            label: 'Tooltip Text',
                            value: ''
                        },
                        {
                            type: 'listbox',
                            name: 'listboxClassName',
                            label: 'Class',
                            'values': 
                            [
                                {text: 'Top Tooltip', value: 'top_tooltip'},
                                {text: 'Left Tooltip', value: 'left_tooltip'},
                                {text: 'Right Tooltip', value: 'right_tooltip'},
                                {text: 'Bottom Tooltip', value: 'bottom_tooltip'}
                            ]
                        }
                    ],
                    onsubmit: function( e ) 
                    {
                        editor.insertContent( '[tooltip class="' + e.data.listboxClassName + '" title="' + e.data.textboxtooltipName + '"]  html  [/tooltip]');
                    }
                });
            }
        });
    });
})();

Teraz ta linia jest ta, która jest odpowiedzialna za wyświetlanie wybranego tekstu + inne atrybuty. Zasadniczo stworzyłem zmienną HTML, aby złapać wybrany tekst, jednak nie jest wyświetlany na moim kodzie. Sprawdź kod:

onsubmit: function( e ) 
{
    editor.insertContent( '[tooltip class="' + e.data.listboxClassName + '" title="' + e.data.textboxtooltipName + '"]  html  [/tooltip]'); 
}

Jakiś pomysł, co słychać? Jak mogę wyświetlić wyjście funkcji GetSelectionHTML do prawidłowego prawidłowego wyjścia funkcji anonimowej?

0
user2271471 18 sierpień 2014, 06:26

2 odpowiedzi

Najlepsza odpowiedź

Funkcja getSelectionHtml() otrzymuje tekst wybrany na stronie, ale myślę, że chcesz wybrany tekst w edytorze Tinymce.

Próbować:

editor.insertContent(
    '[tooltip class="' + e.data.listboxClassName
    + '" title="' + e.data.textboxtooltipName + '"]'
    + editor.selection.getContent()
    + '[/tooltip]');
0
John S 18 sierpień 2014, 05:00

Próbować

function getSelectionHtml() {
  html = ""; // removed var so that it can be accessed globally.
  if (typeof window.getSelection != "undefined") {
    var sel = window.getSelection();
    if (sel.rangeCount) {
        var container = document.createElement("div");
        for (var i = 0, len = sel.rangeCount; i < len; ++i) {
            container.appendChild(sel.getRangeAt(i).cloneContents());
        }
        html = container.innerHTML;
    }
  } else if (typeof document.selection != "undefined") {
    if (document.selection.type == "Text") {
        html = document.selection.createRange().htmlText;
    }
  }
 //document.write(html); this will rewrite the document - don't do this!
}

I w anonimowej funkcji:

onsubmit: function( e ) 
{
   getSelectionHtml(); // get selected the text
   if(html) // check whether text is selected
       editor.insertContent( '[tooltip class="' + e.data.listboxClassName + '" title="' + e.data.textboxtooltipName + '"]'+  html+'  [/tooltip]'); // html now reffers to the global variable
}
0
T J 18 sierpień 2014, 04:25