2012-11-24 22 views
9

इंडेंट करने की अनुमति कैसे दें मैं लोगों को छोटे एमसीई संपादक में इंडेंट करने की अनुमति देने का प्रयास कर रहा हूं। अभी, जब भी कोई tab दबाता है तो वे केवल अगले फ़ील्ड में जाते हैं। क्या कोड का कोई भी टुकड़ा है जो उन्हें वास्तव में tab पर हिट करने की अनुमति देगा और इसे एक नए अनुच्छेद के लिए एक टैब बना देगा।छोटे एमसीई: लोगों को

+0

यह आलेख इस समस्या के बारे में बात करता है: http: //www.pixelastic.com/blog/159:tabindexing-and-inserting-tabs-with-tinymce – Tim

+1

@Tim मैं बहुत उलझन में हूं। हर बार जब मैं इस समस्या पर एक वेब खोज करता हूं, तो मुझे बस विपरीत समस्या वाले लोगों के साथ लिंक मिलते हैं। जब मैं टैब हिट करता हूं, तो यह अगले फ़ील्ड पर कूद जाता है। ऐसा लगता है कि जब भी कोई और टैब हिट करता है, तो यह अगले क्षेत्र में नहीं जाता है (आपका आलेख भी)। –

उत्तर

7

उपयोगकर्ता इस टैब को दबाकर stopPropagation/return false पकड़ सकता है।

// Adds an observer to the onKeyUp event using tinyMCE.init 
tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onKeyDown.add(function(ed, evt) { 
      console.debug('Key up event: ' + evt.keyCode); 
      if (evt.keyCode == 9){ // tab pressed 
      ed.execCommand('mceInsertRawHTML', false, '\x09'); // inserts tab 
      evt.preventDefault(); 
      evt.stopPropagation(); 
      return false; 
      } 
     }); 
    } 
}); 

मामले में उपयोगकर्ता शुरुआत या एक पैराग्राफ यह ब्राउज़र द्वारा हटाया नहीं जाएगा के अंत में एक टैब सम्मिलित करता है (इस के लिए एक समाधान के एक पूर्वनिर्धारित लंबाई की एक विशेष चरित्र है कि एक टैब नहीं है डालने के लिए है) ।

+0

क्या कर्सर को अगले क्षेत्र में कूदने से रोकने का कोई तरीका है। अभी, यह टैब को सम्मिलित करता है, लेकिन अगले क्षेत्र में भी स्थानांतरित हो जाता है। –

+0

इसके अलावा, परिवर्तनीय 'evt' बस एक त्रुटि देता है। –

+0

जो मेरी विफलता थी (घटना के बुलबुले को रोकने के लिए जरूरी है), मैंने इसे – Thariama

3

थारियामा का समाधान मेरे लिए काफी काम नहीं करता था। मैं जॉन हल्क के फिक्स से सहमत हूं। यह फ़ायरफ़ॉक्स (मैक + पीसी), क्रोम (मैक + पीसी) और इंटरनेट एक्सप्लोरर पर ठीक काम करता प्रतीत होता है। यह सही नहीं है, लेकिन मुझे यह बहुत उपयोगी और स्वीकार्य लगता है। धन्यवाद जॉन

तो, सेशन जॉन की समाधान रैप करने के लिए:

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onKeyDown.add(function(ed, evt) { 
      if (evt.keyCode == 9){ 
      ed.execCommand('mceInsertContent', false, '  '); 
      evt.preventDefault(); 
      } 
     }); 
    } 
}); 
21

टिनी MCE संपादक के नए संस्करण निम्न समाधान मेरे लिए काम किया के लिए:

setup: function(ed) { 
    ed.on('keydown', function(event) { 
     if (event.keyCode == 9) { // tab pressed 
      if (event.shiftKey) { 
      ed.execCommand('Outdent'); 
      } 
      else { 
      ed.execCommand('Indent'); 
      } 

      event.preventDefault(); 
      return false; 
     } 
    }); 
} 
1

जवाब यहाँ दी काफी नहीं था मेरी आवश्यकताओं से मेल खाता है क्योंकि मुझे लाइन के बीच में टेक्स्ट इंडेंट करने की आवश्यकता है। मैं कार्यालय शाखाओं के नाम सूचीबद्ध कर रहा था और चाहता था कि उनके फोन नंबर एक साथ गठबंधन हों। प्रत्येक कार्यालय का नाम एक अलग लंबाई होने के साथ मैंने @ मैक के उत्तर और रिक्त स्थान के संयोजन की कोशिश की लेकिन मुझे इसे सटीक सटीक नहीं मिला, इसलिए मैंने शिफ्ट कुंजी और स्पेस बार का उपयोग करके एक छोटा सा स्थान विकल्प जोड़ा जो मुझे पूरी तरह से पूरी तरह से लाइन करने की अनुमति देता है । केवल नकारात्मक पक्ष यह है कि टिनिमस के लिए डिफ़ॉल्ट इकाइयों में शामिल नहीं है और बालियां; तो मुझे अपनी सेटिंग्स में डिफ़ॉल्ट इकाई सूची जोड़नी है और अंत में "8202, हेयरस" जोड़ें।

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.on('keydown', function(event) { 
     if (event.keyCode == 9) { // tab pressed 
      ed.execCommand('mceInsertContent', false, '  '); // inserts tab 
      event.preventDefault(); 
      return false; 
     } 
     if (event.keyCode == 32) { 
      if (event.shiftKey) { 
       ed.execCommand('mceInsertContent', false, ' '); // inserts small space 
       event.preventDefault(); 
       return false; 
      } 
     } 
     }); 
    } 
}); 
2

यह TinyMCE में प्लग-इन उपलब्ध nonbreaking के माध्यम से किया जा सकता है

tinymce.init({ 
    selector: "textarea", // change this value according to your HTML 
    plugins: "nonbreaking", 
    mewnubar: "insert", 
    toolbar: "nonbreaking", 
    nonbreaking_force_tab: true 
}); 

विवरण https://www.tinymce.com/docs/plugins/nonbreaking/

0

पर पाया जा सकता तो आप आसानी से निम्नलिखित कोड का उपयोग कर टैब अंतरिक्ष जोड़ा जा

ed.on('keydown',function(evt){ 
      if (evt.keyCode==9) { 
       ed.execCommand('mceInsertContent', false, '<span class="mce-nbsp">&emsp;&emsp;&emsp;&emsp;</span>'); 
       tinymce.dom.Event.cancel(evt); 
       return; 
      } 
    }); 
संबंधित मुद्दे