url - online - w3schools html reference pdf




XHTML و & amp؛(Ampersand) الترميز (4)

موقعي على الويب متوافق مع XHTML الانتقالي باستثناء شيء واحد : تتم كتابة علامة (& ampersand) في عنوان URL كما هي ، بدلاً من &

وهذا يعني أن جميع عناوين url في صفحاتي عادةً ما تكون على النحو التالي:

<a href="http://www.foo.com/page.aspx?x=1&y=2">Foo</a>

لكن المدقق XHTML يولد هذا الخطأ:

لا يمكن إنشاء معرف النظام للكيان العام "y"

... ويريد كتابة عنوان URL كما يلي:

<a href="http://www.foo.com/page.aspx?x=1&amp;y=2">Foo</a>

المشكلة هي أن IE و Firefox لا يتعاملان مع عنوان URL بشكل صحيح ويتجاهلان المعلمة y. كيف يمكنني عمل هذا الرابط والتحقق من صحته؟

يبدو لي أنه من المستحيل أن تكتب صفحات XHTML إذا كانت المستعرضات لا تعمل مع XHTML URLs المشفرة.

هل تريد أن ترى في العمل؟ انظر الفرق بين هذين الرابطين (قم بنسخها ولصقها كما هي):

http://stackoverflow.com/search?q=ff&sort=newest

و

http://stackoverflow.com/search?q=ff&amp;sort=newest

المشكلة أسوأ مما تظن - جربه في سفاري. وأمبير. يتم تحويله إلى & # 38؛ وينهي التجزئة عنوان URL. الإجابة الصحيحة هي عدم إخراج XHTML - لا يوجد سبب يبرر إنفاق المزيد من الوقت على التطوير وإبعاد مستخدمي Mac.


كان خطئي: تم تشفير عنصر التحكم في الارتباط التشعبي بالفعل & ، لذلك تم تشفير عنوان url http://foo?x=1&amp;y=2 إلى http://foo?x=1&amp;amp;y=2

عادة يتم التعامل مع & amp داخل عنوان URL بشكل صحيح بواسطة المتصفحات ، كما ذكرت. شكر


لقد حاولت هذا للتو. ما حاولت القيام به هو الصحيح. في HTML إذا كنت تكتب رابطًا & فيجب ترميز الأحرف &amp; يمكنك فقط ترميز & %26 إذا أردت أن تحتوي قيمة معلمة على علامة العطف. لقد كتبت للتو صفحة HTML بسيطة تحتوي على رابط: <a href="Default2.aspx?param1=63&amp;param2=hel">Click me</a> وعملت بشكل جيد: default2.aspx تلقي المعلمات المقصودة و المصدر مرت التحقق من الصحة.

تشفير & as &amp; مطلوب في HTML ، وليس في الرابط. عندما يرى المتصفح &amp; في مصدر HTML للارتباط ، فسوف يفسره على أنه علامة العطف وستكون وصلة الهدف على النحو المنشود. إذا قمت بلصق عنوان URL في شريط عنوان المتصفح الخاص بك ، فإنه لا يتوقع أن يكون HTML ولا يحاول تفسير أي تشفير HTML قد يحتوي عليه. هذا هو سبب عدم عمل الروابط التي تقترح عليك نسخها / لصقها في المتصفح ، ولماذا لا نتوقع منهم أن يعملوا.

إذا نشرت أكثر من رمزك الفعلي ، فقد نتمكن من معرفة الأخطاء التي ارتكبتها ، ولكن يبدو أنك تسلك الاتجاه الصحيح باستخدام &amp; في علاماتك المرساة.


يمكنك استخدام &amp; بدلاً من & في عنوان url الخاص بك داخل صفحتك.

يجب أن يسمح ذلك ليتم التحقق من صحة xhtml صارمة ...

<a href="http://www.foo.com/page.aspx?x=1&amp;y=2">Foo</a>

ملاحظة ، إذا استخدمت من قبل دالة ASP.NET Request.QueryString ، لا تستخدم سلسلة الاستعلام ترميز XML ، فهي تستخدم ترميز URL :

/mypath/mypage?b=%26stuff

لذلك تحتاج إلى توفير وظيفة ترجمة '&' إلى٪ 26

ملاحظة: في هذه الحالة ، Server.URLEncode ("neetu & geetu") ، والتي من شأنها إنتاج neetu +٪ 26 + geetu ، ليس ما تريده ، حيث تحتاج إلى الترجمة إلى٪ 26 ، وليس فقط '&'. يجب إضافة استدعاء الاستبدال () المطبق على نتيجة URLEncode ، ليحل محل "٪ 26amp؛" بواسطة '٪ 26'.





xhtml