JCE / TinyMCE - मान्य और अमान्य HTML को ठीक करने का प्रयास करता रहता है


9

हमारे द्वारा उपयोग किए गए सभी जूमला संपादकों में से, JCE के पास हमारे उद्देश्य और ग्राहक सबसे उपयुक्त हैं। लेकिन संपादक के साथ कुछ समस्याएं हैं जो समस्याओं का कारण बन सकती हैं जब हम कुछ कोड करते हैं, तो यह wysiwyg पर टॉगल किया जाता है और संपादक हमारे पूरी तरह से वैध HTML को 'ठीक' करने की कोशिश करता है।

इससे पहले कि आप प्रश्न पूछें - हां, हमने इसे उन सभी तत्वों की अनुमति देने के लिए सेट किया है जो जेसीई को प्रतिबंधित करना पसंद करते हैं, और नहीं, यह html को मान्य / साफ करने के लिए सेट नहीं है। हमारे पास एकमात्र प्रतिबंध संपादक में सामग्री चिपकाने के लिए है।

प्रदर्श अ:

<a href="#"></a>

यह टॉगल एडिटर और बैक पर गायब हो जाएगा। के साथ बदल दिया:

<p>&nbsp;</p>

प्रदर्शनी बी:

<a id="#nameofanchor"></a>

में परिवर्तन:

<p>&nbsp;</p>

प्रदर्शनी सी:

<div><a id="#nameofanchor"></a></div>

में परिवर्तन:

<div>&nbsp;</div>

प्रदर्शनी डी:

<a id="hello" class="link">Hello</a>

में परिवर्तन:

<p><a id="hello" class="link"></a>Hello</p>

प्रदर्शनी ई:

<a href="#">
<div>
<h2>Our Work</h2>
</div>
</a>

में परिवर्तन:

<p><a href="#"></a></p>
<div>
<h2><a href="#">Our Work</a></h2>
</div>
<p>&nbsp;</p>

अब, हम अपने एंकर के लिए नाम के बजाय आईडी का उपयोग करना चाहते हैं, क्योंकि यह HTML5 के तहत मान्य है, जबकि तकनीकी रूप से नाम नहीं है। इसके अलावा, किस ब्रह्मांड में एक लिंक के लिए एक अमान्य असाइनमेंट है?

इसके अलावा, अब जब यह लिंक के साथ एक डिव को लपेटने के लिए पूरी तरह से वैध है, तो जेसीई उन लोगों को भी क्यों छीन लेगा?

क्या यह सिर्फ एक सेटिंग है जो मुझे याद आ रही है? क्या किसी के पास इस बात की कोई अंतर्दृष्टि है कि मैं संपादक का उपयोग कैसे कर सकता हूं ताकि हम संपादक की आवश्यकता के अनुसार कोड कर सकें, लेकिन हमारे ग्राहक इसे केवल wysiwyg में सहेज कर बर्बाद नहीं कर सकते?

संपादित करें: मैंने इसे क्रोम, फ़ायरफ़ॉक्स और सफारी में परीक्षण किया है। लगता है कि यह ब्राउज़र के साथ कुछ भी नहीं मिला है।

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

पुष्टि: यह भी TinyMCE के साथ होता है।

तो - हम जानते हैं कि इसका क्या कारण है - पैराग्राफ कंटेनर सेटिंग - अब हम उस सेटिंग को जीवित रखते हुए उसके आसपास कैसे पहुंचते हैं?


1
खुशी है कि यह सिर्फ मैं नहीं हूं।
क्रेग

हमारी पिछली चर्चाओं और निष्कर्ष के बाद कि यह JCE तत्व रैपिंग फीचर से आ रहा है, मुझे यकीन नहीं है कि यह वास्तव में एक चिंता का विषय है। यदि आप अपने ग्राहक पर भरोसा कर रहे हैं कि ऊपर संपादक की तरह html स्निपेट जोड़ना संभव है, तो संपादक राज्य को टॉगल करके, आप उन पर भरोसा क्यों नहीं करेंगे कि वे अपनी सामग्री को उपयुक्त <p> टैग के साथ लपेटेंगे?
FFrewin

हमारे ग्राहक html नहीं जोड़ते हैं। हम HTML लिखते हैं, वे संपादक की ओर का उपयोग करते हैं - जैसे ही संपादक को टॉगल किया जाता है, यह हमारे पूरी तरह से मान्य HTML को मिटा देता है।
फेय

किसी भी स्थिति में, यदि आप html से भरे पेज को ग्राहक तक पहुँच प्रदान करते हैं, तो एक तरह से या किसी अन्य, एक बड़ा मौका है कि ग्राहक आपके html को नष्ट कर सकता है। जेसीई के टेम्पलेट प्रबंधक, या अन्य "मैक्रो" टैग का उपयोग करने के बारे में क्या है, जो आपको आवश्यक मार्कअप को जोड़ने का गंदा काम करेगा?
FFrewin

जवाबों:


7

मैं अपनी सभी साइटों पर JCE एडिटर का उपयोग करता हूं, लेकिन हमने NoNumbers द्वारा Sourcerer भी स्थापित करना शुरू कर दिया है। यह JCE एडिटर को एक आसान INSERT CODE बटन देता है जो इसे संशोधित होने से बचाता है।

http://www.nonumber.nl/extensions/sourcerer


धन्यवाद। यह सही है, हमारे पास पहले से ही हमारे सामान पर नॉनम्बर स्थापित है क्योंकि यह शानदार है, मुझे यह पता नहीं था कि यह ऐसा था। यह पूर्ण है।
फेय

1
HTML को जोड़ने के लिए Sourcerer का उपयोग करने की कोई आवश्यकता नहीं होनी चाहिए।
BITIT

Aaaand अभी तक मैं या JCE स्ट्रिप्स पूरी तरह से वैध HTML बाहर है।
फेय

2

JCE के लिए कुछ गुप्त सेटिंग्स हैं। मुझे पता है कि निम्नलिखित सेटिंग स्टॉप्स &nbsp;में जोड़े जा रहे हैं, शायद इसका इस्तेमाल फ्लोट्स को साफ करने के लिए किया जाता है, जो कि लाइन-हाईड मुद्दों का कारण बनता है:

In the Editor Global Configuration, add:
remove_div_padding:1 
to Custom Configuration Variables. 

मुझे उम्मीद है कि संपादक के किसी भी पहलू को नियंत्रित कर सकते हैं।


1

मुझे लगता है कि यह टाइपोग्राफी सेटिंग्स में होना चाहिए: प्रोफ़ाइल -> संपादक पैरामीटर -> टाइपोग्राफी । यह देखने के लिए कि क्या यह अभी भी आपके HTML में कोई भी बदलाव लागू करता है, एंटरटेनर और NoContainer & LineBreak पर दर्ज करें।

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


हाँ, मैं सभी संपादक प्रोफाइल आदि में रहा हूँ, मुझे यह सब बिना किसी html के सही ढंग से मिला है। कंटेनर को बदलने से यह हल हो सकता है - लेकिन यह एक और समस्या का कारण होगा, समान रूप से समस्याग्रस्त। यदि कोई ग्राहक ऐसी पाठ्य सामग्री जोड़ सकता है जो पैराग्राफ टैग में लिपटी हुई नहीं है, तो उनके पाठ का प्रारूपण अलग होगा। हम भी ऐसा नहीं चाहते हैं। मैं यह देखने के लिए परीक्षण करूँगा कि क्या एंकर के साथ भी यही समस्या है, लेकिन जहाँ तक पैराग्राफ़ टैग्स में खुद को जोड़ने की बात है, यह पाठ्यक्रम के लिए समान है।
फे

हाँ, यह कंटेनर सेटिंग्स है जो इसे करता है - लेकिन जैसा कि मैंने कहा, यह हमारे ग्राहकों के लिए एक बड़ी समस्या है जो पेस्ट करने में सक्षम नहीं है और एक स्वचालित पैराग्राफ टैग है जो उनकी सामग्री को लपेटता है।
फेय

मुझे लगता है कि ऐसा इसलिए हो रहा है क्योंकि आपके कोड उदाहरणों में लाइन ब्रेक होते हैं, जो पैराग्राफ बनाने के लिए जेसीई के लिए "नियम" का एक प्रकार है। इसे बनाने के लिए इस तरह की कसौटी होनी चाहिए। क्या आपका ग्राहक संपादक में ऐसे html स्निपेट चिपकाने जा रहा है?
FFrewin

हमारे ग्राहक html का उपयोग नहीं करने जा रहे हैं, लेकिन हम अभी भी html के साथ कोड करते हैं कि वे क्या करते हैं। हम उन्हें सीधे सामग्री पेस्ट / टाइप करने के लिए क्षेत्र बनाते हैं। इसके अलावा - यदि आपका मतलब है कि ऊपर की तरह संगठित के बजाय एक पंक्ति में html टाइप करना है, तो मैंने भी यही कोशिश की है। मुझे ठीक वही परिणाम मिलते हैं।
फेय

0

यह व्यवहार JCE के लिए अद्वितीय नहीं है। TinyMCE उसी तरह व्यवहार करता है। यह व्यवहार TinyMCE तक सीमित नहीं हो सकता है, यह एक ब्राउज़र DOM व्यवहार हो सकता है।

जेसीई वास्तव में कुछ खाली टैग रखने की कोशिश करने की परेशानी में जाता है, नियोजित विधि एक स्थान के साथ पैड करना है।

https://github.com/widgetfactory/jce-editor/blob/master/editor/tiny_mce/plugins/cleanup/editor_plugin.js


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

मैंने अपने डिफ़ॉल्ट संपादक को टिनएमसीई पर स्विच किया, जो कि जूमला के साथ पहले से इंस्टॉल आता है, और एक्ज़िबिट ए का परीक्षण किया। यह संपादक WYSIWYG और स्रोत विचारों के बीच स्विच करते समय टैग भी हटा दिया। अर्थात यह व्यवहार JCE के लिए अद्वितीय प्रतीत नहीं होता है। इसलिए, मुझे आश्चर्य हो रहा है कि क्या यह TinyMCE के लिए अद्वितीय नहीं है, और शायद ऐसा ही तब हो सकता है जब ब्राउज़र संपादन की जगह पर प्रदर्शन करने की क्षमता का उपयोग कर रहे हों। जेसीई कोड संदर्भ लाइन 129 था जहां गैर-ब्रेकिंग स्पेस का उपयोग तेह स्टार्ट और एंड टैग के बीच किया जाता है। यह JCE और TinyMCE दोनों में मेरे लिए काम करता है। अजीब।
पीटर विस्मैन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.