प्राप्त करें मैं वेब ब्राउज़र के लिए रिच टेक्स्ट एडिटर पर काम कर रहा हूं और मैं आरटीई/सामग्री संपादन योग्य तत्व में वर्तमान फ़ॉन्ट रंग और आकार के मूल्यों के साथ काम करना चाहता हूं। क्या इन मानों को प्राप्त करने के लिए कुछ पूर्व निर्धारित फ़ंक्शन है, जैसे execCommand, जो सीधे ContentEditable तत्व से जुड़ा हुआ है? या मुझे कुछ टेक्स्ट रेंज jQuery लाइब्रेरी का उपयोग करना चाहिए जो इन गुणों को प्राप्त करेगा?ContentEditable - वर्तमान फ़ॉन्ट रंग/आकार
13
A
उत्तर
27
आप document.queryCommandValue()
उपयोग कर सकते हैं सभी प्रमुख ब्राउज़रों में वर्तमान चयन के रंग और फ़ॉन्ट आकार पाने के लिए:
लाइव डेमो: http://jsfiddle.net/timdown/AJBsY/
कोड:
var colour = document.queryCommandValue("ForeColor");
var fontSize = document.queryCommandValue("FontSize");
हालांकि, परिणाम हैं ब्राउज़र में असंगत और FontSize
कमांड केवल सीएसएस के बजाय HTML <font>
तत्व में उपयोग किए गए फ़ॉन्ट आकार 1-7 के साथ काम करता है, इसलिए आप तत्व सह को पकड़ने से बेहतर होंगे चयन ntaining और का उपयोग कर अपने सीएसएस गुण window.getComputedStyle()
/currentStyle
की जांच:
लाइव डेमो: http://jsfiddle.net/timdown/K4n2j/
कोड:
function getComputedStyleProperty(el, propName) {
if (window.getComputedStyle) {
return window.getComputedStyle(el, null)[propName];
} else if (el.currentStyle) {
return el.currentStyle[propName];
}
}
function reportColourAndFontSize() {
var containerEl, sel;
if (window.getSelection) {
sel = window.getSelection();
if (sel.rangeCount) {
containerEl = sel.getRangeAt(0).commonAncestorContainer;
// Make sure we have an element rather than a text node
if (containerEl.nodeType == 3) {
containerEl = containerEl.parentNode;
}
}
} else if ((sel = document.selection) && sel.type != "Control") {
containerEl = sel.createRange().parentElement();
}
if (containerEl) {
var fontSize = getComputedStyleProperty(containerEl, "fontSize");
var colour = getComputedStyleProperty(containerEl, "color");
alert("Colour: " + colour + ", font size: " + fontSize);
}
}
यह एक सुधार है, लेकिन अभी भी ऐसी इकाइयों भिन्न के रूप में ब्राउज़र विसंगतियों हैं या रंग प्रारूप
संबंधित मुद्दे
- 1. ContentEditable
- 2. पिक्सेल contenteditable
- 3. चेतावनी: "मिन फ़ॉन्ट वर्तमान फ़ॉन्ट आकार से बड़ा आकार"
- 4. डालने MathJax contenteditable div
- 5. अगर contenteditable div
- 6. jQuery एचटीएमएल contenteditable वैल
- 7. contenteditable सुपरस्क्रिप्ट और क्रोम
- 8. कैसे एक div contenteditable और खींचने योग्य
- 9. contenteditable, पाठ (क्रॉस-ब्राउज़र) के अंत
- 10. contenteditable + selectAll: फ़ायरफ़ॉक्स गतिशील सृजित सामग्री
- 11. contenteditable UIWebView प्रोग्रामेटिक रूप से कीबोर्ड दिखाएं
- 12. फ़ॉन्ट
- 13. @ फ़ॉन्ट-फेस ब्लैकलिस्टेड फ़ॉन्ट
- 14. फ़ॉन्ट
- 15. फ़ॉन्ट
- 16. @ फ़ॉन्ट-फेस, फ़ॉन्ट गिलहरी में फ़ॉन्ट-वेट या फ़ॉन्ट-शैली को परिभाषित क्यों नहीं करें?
- 17. फ़ॉन्ट आकार बदलने के बिना फ़ॉन्ट मोटाई
- 18. jQuery बदलते फ़ॉन्ट परिवार और फ़ॉन्ट आकार
- 19. टेक्स्टरेरा में फ़ॉन्ट स्थिरता
- 20. \ textnumero और फ़ॉन्ट एन्कोडिंग
- 21. पूर्ववत और SWT में WYSYWYG contenteditable में फिर से करें
- 22. आईफोन पर @contenteditable काम क्यों नहीं करता है?
- 23. एचटीएमएल 5, खींचने योग्य और contenteditable एक साथ
- 24. फ़ॉन्ट स्टैक
- 25. फ़ॉन्ट तत्व
- 26. फ़ॉन्ट-वेट
- 27. UITableViewCell फ़ॉन्ट
- 28. UIButton फ़ॉन्ट
- 29. ज्ञात फ़ॉन्ट
- 30. फ़ॉन्ट लेआउट
मैंने सभी ब्राउज़रों और आईई 7,8 के नए संस्करणों में फ़ॉन्ट आकार की संपत्ति में इकाइयों के साथ कुछ समस्याएं नहीं देखीं। हालांकि रंग कहीं कहीं आरजीबी और हेक्स नोटेशन के साथ व्याख्या की जाती है। लेकिन यह अभी तक मेरे लिए कोई समस्या नहीं है, शायद मैं इसके लिए कुछ शर्त तैयार करूंगा। धन्यवाद! – optimista
क्या चयन में "अपरिभाषित" होना संभव है यदि चयन में एक से अधिक फ़ॉन्ट-आकार (या रंग) हो? अब जब मैं सभी का चयन करता हूं, तो यह "रंग: आरजीबी (0, 0, 0), फ़ॉन्ट आकार: 16 पीएक्स" अलर्ट करता है। यह मेरे उद्देश्य के लिए भ्रमित है। –
@ टिमो: यह संभव है कि चयन का मूल तत्व वह नहीं है जो आपको लगता है। जब आप सभी का चयन करते हैं, तो वह संतुष्ट तत्व होने की संभावना है, जिसमें कोई स्टाइल नहीं हो सकता है। –