किसके लिए प्रयोग किया जाता है


108

क्या नीचे URL के व्यवहार में कोई अंतर है।

मुझे नहीं पता कि क्यों &डाला गया है, क्या इससे कोई फर्क पड़ता है?

www.testurl.com/test?param1=test&current=true

बनाम

www.testurl.com/test?param1=test&current=true


1
क्या आप एक संदर्भ दे सकते हैं? क्या यह एक फार्म कार्रवाई में है? बस एक पृष्ठ पर प्रदर्शित?
jprofitt

@ user470184 मैंने इसे डाउनवोट नहीं किया बल्कि इस पर विचार किया। इस मुद्दे से संबंधित SO पर पहले से ही एक टन जानकारी मौजूद है।
चार्ल्स स्प्रेबेरी

"सामान्य व्यवहार" अभी भी बहुत अस्पष्ट है। क्या आप किसी चीज़ के बारे में सोच रहे हैं <p>www.testurl.com/test?param1=test&amp;current=true</p>या <a href="www.testurl.com/test?param1=test&amp;current=true">linky</a>?
jprofitt

@ jprofitt <a href="www.testurl.com/test?param1=test&current=true"> linky </a>
नीला-आकाश

जवाबों:


126

& "एक चरित्र संदर्भ की शुरुआत" के लिए HTML है।

&amp; "एक एम्परसेंड" के लिए चरित्र संदर्भ है।

&current; एक मानक चरित्र संदर्भ नहीं है और इसलिए एक त्रुटि है (ब्राउज़र त्रुटि पुनर्प्राप्ति करने की कोशिश कर सकता है लेकिन आपको इस पर निर्भर नहीं होना चाहिए)।

यदि आपने वास्तविक चरित्र के लिए एक वर्ण संदर्भ का उपयोग किया है (उदाहरण के लिए &trade;) तो यह (™) आपके द्वारा वांछित स्ट्रिंग के बजाय URL में दिखाई देगा।

(ध्यान दें कि आपके द्वारा उपयोग किए जाने वाले HTML के संस्करण के आधार पर, आपको a के साथ एक चरित्र संदर्भ समाप्त करना पड़ सकता है ;, यही कारण है कि &trade=इसे ™ के रूप में माना जाएगा। HTML 4 यह अनुमति देता है कि यदि अगला वर्ण एक गैर-शब्द वर्ण है ( जैसे कि =) लेकिन कुछ ब्राउज़रों (हैलो इंटरनेट एक्सप्लोरर) के पास इसके मुद्दे हैं)।


6

HTML पहचान नहीं करता है, &लेकिन यह पहचान लेगा &amp;क्योंकि यह &HTML में बराबर है

मैंने देखा कि इस पोस्ट को किसी ने बनाया था: http://www.webmasterworld.com/forum21/8851.htm


5

मेरा स्रोत: http://htmlhelp.com/tools/validator/problems.html#amp

एक सामान्य त्रुटि तब होती है जब एक URL जिसमें एक एम्परसैंड ("और") शामिल होता है:

यह अमान्य है:

a href = "foo.cgi? Chapter = 1 & section = 2 और copy = 3 & lang = en"

स्पष्टीकरण:

यह उदाहरण "अज्ञात इकाई अनुभाग" के लिए एक त्रुटि उत्पन्न करता है क्योंकि "&"एक इकाई संदर्भ शुरू करने के लिए माना जाता है। ब्राउज़र अक्सर इस तरह की त्रुटि से सुरक्षित रूप से ठीक हो जाते हैं, लेकिन वास्तविक समस्याएं कुछ मामलों में होती हैं। इस उदाहरण में, कई ब्राउज़र सही रूप से & 3 = को © = 3 में कॉपी करते हैं, जिससे लिंक विफल हो सकता है। चूंकि HTML बाईं ओर के कोण कोष्ठक के लिए HTML इकाई है, इसलिए कुछ ब्राउज़र भी & lang = en को HTML = en में परिवर्तित करते हैं। और एक पुराना ब्राउज़र भी इकाई §, परिवर्तित और अनुभाग = 2 से 2ion = 2 में पाता है।

तो यहाँ लक्ष्य समस्याओं से बचने का है जब आप अपनी वेबसाइट को मान्य करने का प्रयास कर रहे हैं। इसलिए आपको &amp;अपने मार्कअप में URL लिखते समय अपने एम्परसेंड की जगह लेनी चाहिए ।

ध्यान दें कि के &साथ की जगह &amp; केवल HTML में URL लिखते समय किया जाता है, जहां "&"एक विशेष चरित्र है ("<" और ">")। सादे URL ईमेल संदेश में या अपने ब्राउज़र के स्थान बार में एक ही URL लिखते समय, आप उपयोग करेंगे "&"और नहीं भी "&amp;"। HTML के साथ, ब्राउज़र अनुवाद "&amp;"करता है "&"इसलिए वेब सर्वर केवल अनुरोध के क्वेरी स्ट्रिंग में ही दिखाई देगा "&" और नहीं "&amp;"

उम्मीद है की यह मदद करेगा : )


0

यह एक महान उदाहरण है। जब इसे एक पाठ नोड में&current पार्स किया जाता है तो इसे परिवर्तित कर दिया जाता है ¤t। जब एक विशेषता मान में पार्स किया जाता है , तो इसे पार्स किया जाता है &current

यदि आप &currentएक टेक्स्ट नोड में चाहते हैं , तो आपको &amp;currentअपने मार्कअप में लिखना चाहिए ।

Gory विवरण यहाँ हैं: http://dev.w3.org/html5/spec/tokenization.html#consume-a-character-reference


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.