शीर्षक विशेषता में दोहरे उद्धरण चिह्नों से कैसे बचें


195

मैं एक स्ट्रिंग का उपयोग करने की कोशिश कर रहा हूं जिसमें एंकर की शीर्षक विशेषता में दोहरे उद्धरण शामिल हैं। अब तक मैंने ये कोशिश की:

<a href=".." title="Some \"text\"">Some text</a>
<!-- The title looks like `Some \` --!>

तथा

<a href=".." title="Some &quot;text&quot;">Some text</a>
<!-- The title looks like `Some ` --!>

कृपया ध्यान दें कि एकल उद्धरण का उपयोग करना एक विकल्प नहीं है।


18
@ हईम ने सवाल पढ़ा ... यह कहता है "एकल उद्धरण एक विकल्प नहीं है"।
नेल्स रिडमैन

2
@harpax - मैं बस उत्सुक था कि एकल उद्धरण एक विकल्प क्यों नहीं हैं?
बर्थ एफ

3
एकल उद्धरण मान्य HTML नहीं हैं।
स्काईफुट

1
आपका दूसरा उदाहरण पूरी तरह से काम करना चाहिए। आप किस ब्राउज़र में समस्या देख रहे हैं?
ऑली हॉजसन

1
@harpax: शायद आपको स्पष्ट करना चाहिए कि "एकल उद्धरण एक विकल्प नहीं हैं" -requirement। मैंने अनुमान लगाया होगा कि आप "स्ट्रिंग" के अंदर सिंगल कोट्स का उल्लेख करते हैं, यह एक विकल्प नहीं है (जैसा कि उपयोगकर्ता को प्रदर्शित किया जा रहा है), लेकिन सिर्फ सिंगल और डबल कोट्स को फ़्लिप करना जैसा कि ऊपर दिखाया गया है ठीक होगा।
क्रिश्चियन.के।

जवाबों:


284

यह संस्करण -

<a title="Some &quot;text&quot;">Hover me</a>

सही है और यह अपेक्षा के अनुरूप काम करता है - आप प्रस्तुत पृष्ठ में सामान्य उद्धरण देखते हैं।


हां। <a href="#" title="Foo &quot;Bar&quot;">Testing</a>और <a href="#" title="Smart quotes &#8221;Bar&#8220;">Testing too</a>मेरे लिए काम करो।
ओली हॉजसन

5
@ मारिस: ठीक है ... जब मैं & quot; (फ़ायरफ़ॉक्स, क्रोम)। क्यों?
क्रिज़ीस्तोफ़ ट्रोज़ोस

@ मारिस, यहाँ भी यही समस्या है। पाठ देखें "& quot;" जब उपयोगकर्ता तत्व पर आईओएस और आईई और क्रोम दोनों में दिखाई दे।
rstackhouse

आश्चर्यजनक रूप से html सामग्री के साथ एम्बेडेड विशेषता के साथ काम किया (संपादन योग्य textarea का उत्पादन करने के लिए जावास्क्रिप्ट के लिए):data-editable-note="<?php echo str_replace('"', '&quot;', $note); ?>"><?php echo mark::up($note); ?></div>
WEBjuju

23

यहां आर्काइव.ऑर्ग पर कैश्ड पेज से लिए गए HTML एस्केप वर्णों का एक स्निपेट दिया गया है :

&#060   |   less than sign  <       
&#064   |   at sign @       
&#093   |   right bracket   ]       
&#123   |   left curly brace    {       
&#125   |   right curly brace   }       
&#133   |   ellipsis    …       
&#135   |   double dagger   ‡       
&#146   |   right single quote  ’       
&#148   |   right double quote  ”       
&#150   |   short dash  –       
&#153   |   trademark   ™       
&#162   |   cent sign   ¢       
&#165   |   yen sign    ¥       
&#169   |   copyright sign  ©       
&#172   |   logical not sign    ¬       
&#176   |   degree sign °       
&#178   |   superscript 2   ²       
&#185   |   superscript 1   ¹       
&#188   |   fraction 1/4    ¼       
&#190   |   fraction 3/4    ¾       
&#247   |   division sign   ÷       
&#8221  |   right double quote  ”       
&#062   |   greater than sign   >   
&#091   |   left bracket    [   
&#096   |   back apostrophe `   
&#124   |   vertical bar    |   
&#126   |   tilde   ~   
&#134   |   dagger  †   
&#145   |   left single quote   ‘       
&#147   |   left double quote   “   
&#149   |   bullet  •   
&#151   |   longer dash —   
&#161   |   inverted exclamation point  ¡   
&#163   |   pound sign  £   
&#166   |   broken vertical bar ¦   
&#171   |   double left than sign   «   
&#174   |   registered trademark sign   ®   
&#177   |   plus or minus sign  ±   
&#179   |   superscript 3   ³   
&#187   |   double greater-than sign    »   
&#189   |   fraction 1/2    ½   
&#191   |   inverted question mark  ¿   
&#8220  |   left double quote   “   
&#8212  |   dash    —   

9

भागने के कोड का &#34;उपयोग इसके बजाय भी किया जा सकता है &quot;


3

उपयोग करना &quot;इसका तरीका है। मैंने आपका दूसरा कोड स्निपेट आज़माया, और यह फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर दोनों में काम करता है।


2

यह HTML एस्केप चरित्र सूची के किसी भी चरित्र के साथ काम कर सकता है , लेकिन मुझे जावा प्रोजेक्ट के साथ भी यही समस्या थी। मैंने इस्तेमाल किया StringEscapeUtils.escapeHTML("Testing \" <br> <p>")और शीर्षक था <a href=".." title="Test&quot; &lt;br&gt; &lt;p&gt;">Testing</a>

यह केवल मेरे लिए काम करता है जब मैंने StringEscapeUtils को बदल दिया StringEscapeUtils.escapeJavascript("Testing \" <br> <p>")और यह हर ब्राउज़र में काम करता है।


मेरी राय में सबसे अच्छा समाधान
मोहम्मद रफ़ीक

यदि आप जावा का उपयोग कर रहे हैं तो ठीक है, लेकिन जैसा कि मूल पूछताछकर्ता HTML के लिए पूछ रहा है, शायद यह कोई विकल्प नहीं है।
पॉल

1

कम से कम एक स्थिति है जहां एकल उद्धरणों का उपयोग करने से काम नहीं चलेगा और अगर आप जावास्क्रिप्ट से "फ्लाई पर" मार्कअप बना रहे हैं। आप स्ट्रिंग को समाहित करने के लिए एकल उद्धरणों का उपयोग करते हैं और फिर मार्कअप में किसी भी संपत्ति में इसके मूल्य के लिए दोहरे उद्धरण हो सकते हैं।


1

शायद आप अपने क्रॉस-ब्राउज़र की समस्या को हल करने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं। यह एक अलग भागने तंत्र का उपयोग करता है, जिसके साथ आप स्पष्ट रूप से पहले से परिचित हैं:

(reference-to-the-tag).title = "Some \"text\"";

यह HTML, जावास्क्रिप्ट और सीएसएस के कार्यों को कड़ाई से अलग नहीं करता है जिस तरह से लोग आजकल आपको चाहते हैं, लेकिन आपको किससे खुश होने की आवश्यकता है? आपके उपयोगकर्ता या तकनीकी आप नहीं जानते?


ओवरकिल जब वांछित पलायन को और अधिक सरल तरीके से प्राप्त किया जा सकता है।
पॉल

-3

विशेष वर्णों को सूचीबद्ध करने के लिए आप इस PHP कोड का उपयोग कर सकते हैं ...

<table border="1"><?php for($i=33;$i<9000;$i++)echo "<tr><td>&#38;#$i;<td>&#".$i.";"; ?></table>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.