2013-08-01 5 views
5

मैं एएसपी.नेट वेबफॉर्म प्रोजेक्ट में कुछ क्रॉस-संगतता समस्याओं को ट्रैक कर रहा हूं, और मैं कुछ असाधारण व्यवहार में चल रहा हूं। अलग-अलग ब्राउज़रों के साथ एक ही पृष्ठ को मारना अलग-अलग परिणाम उत्पन्न करता है, जो अक्सर होता है। इस मामले के बारे में उत्सुकता यह है कि जब मैं विभिन्न ब्राउज़रों में स्रोत देखता हूं, तो यह मुझे अलग-अलग HTML दिखा रहा है।क्या वेब ब्राउज़र खराब/बहिष्कृत एचटीएमएल को ठीक करने का प्रयास करते हैं?

आईई 10:

<td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouseover="javascript:skm_mousedOverMenu('ctl00_MainMenu',this, document.getElementById('ctl00_MainMenu'), false, '');skm_shimSetVisibility(true,'ctl00_MainMenu-menuItem010-subMenu');" onmouseout="javascript:skm_mousedOutMenu('ctl00_MainMenu', this, '');this.className='';" style="cursor:hand;"><font face="Verdana"><b>Patients</b></font></td> 

एफएफ:

<td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouseover="javascript:skm_mousedOverMenu('ctl00_MainMenu',this, document.getElementById('ctl00_MainMenu'), false, '');" onmouseout="javascript:skm_mousedOutMenu('ctl00_MainMenu', this, '');this.className='';" style="cursor:pointer;">Patients</td> 

क्रोम:

<td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouseover="javascript:skm_mousedOverMenu('ctl00_MainMenu',this, document.getElementById('ctl00_MainMenu'), false, '');" onmouseout="javascript:skm_mousedOutMenu('ctl00_MainMenu', this, '');this.className='';" style="cursor:pointer;">Patients</td> 

नोट अतिरिक्त < फ़ॉन्ट > और आईई संस्करण में < ख > टैग। यह एक पुराना ऐप है जिसे मैं रखरखाव कर रहा हूं। यह एक एसएमएम मेनू नियंत्रण का उपयोग कर रहा है और बोल्ड और वर्डाना फ़ॉन्ट स्पष्ट रूप से नियंत्रण के गुणों में सेट हैं।

<SKM:menu id="MainMenu" runat="server" Cursor="Pointer" ItemPadding="7" Font-Bold="True" Font-Size="12px" 
          Font-Names="Verdana" ItemSpacing="0" BorderColor="Black" BorderWidth="1px" BorderStyle="solid" GridLines="Both" 
          BackColor="silver" Layout="Horizontal"> 
          <SelectedMenuItemStyle ForeColor="Red" BackColor="White" /> 
        </SKM:menu> 

इसके अलावा मुझे हैरान, यह एचटीएमएल हम स्रोत देखें IE9 का उपयोग कर के साथ देखें:

<td id="ctl00_MainMenu-menuItem010" onclick="javascript:skm_closeSubMenus(document.getElementById('ctl00_MainMenu'));location.href='../Nurse/nurses_patients.aspx';" onmouseover="javascript:skm_mousedOverMenu('ctl00_MainMenu',this, document.getElementById('ctl00_MainMenu'), false, '');skm_shimSetVisibility(true,'ctl00_MainMenu-menuItem010-subMenu');" onmouseout="javascript:skm_mousedOutMenu('ctl00_MainMenu', this, '');this.className='';" style="cursor:hand;">Patients</td> 

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

संपादित करें: I (या बल्कि ग्राहक) ने तब तक यह नहीं देखा जब तक कि मैं Win2k3 सर्वर से Win2k3 R2 सर्वर पर होस्ट माइग्रेट नहीं करता। अगर मैं आईई 10 से आर 2 सर्वर दबाता हूं, तो मुझे उन अतिरिक्त टैग मिलते हैं। यदि मैंने आईई 10 से गैर-आर 2 सर्वर मारा है, तो मुझे उन टैग नहीं मिलते हैं। सटीक एक ही कोड और आईआईएस 6 दोनों।

+0

संभावना से अधिक, नियंत्रण स्वयं ब्राउज़र पहचान का कुछ रूप कर रहा है, फिर उचित तरीके से स्टाइल कर रहा है। पिछड़ा संगतता बनाए रखने के लिए वास्तव में यह एक अच्छा तरीका है - हालांकि जाहिर है, डेवलपर को ओवरराइड करना मुश्किल हो जाता है। – Rake36

उत्तर

4

यह संभव है कि एएसपी.NET नियंत्रण विभिन्न ब्राउज़रों, विशेष रूप से आईई के विभिन्न संस्करणों के लिए अलग-अलग HTML उत्सर्जित करेगा। वे पता लगाए गए ब्राउज़र क्षमताओं (स्क्रिप्ट समर्थन, सीएसएस समर्थन इत्यादि) के आधार पर ऐसा करने का प्रयास करेंगे।

पुराने एएसपी.NET अनुप्रयोग (पूर्व .NET 4.5) IE10 जैसे आधुनिक ब्राउज़र से अवगत नहीं हैं और यह पता गलत हो सकता है, जिससे विभिन्न समस्याएं हो सकती हैं। पता लगाने में सहायता के लिए आप update browser definitions पर आज़मा सकते हैं।

-1

ब्राउज़र आपके मूल मार्कअप या कोड में परिवर्तन नहीं करते हैं। जबकि ब्राउज़र यह पता लगाने का प्रयास करते हैं कि जब लोग अवैध मार्कअप का उपयोग करते हैं तो लोगों का क्या अर्थ होता है, फिर भी यह डेवलपर टूल में दिखाई देने वाली किसी भी चीज को नहीं बदलेगा।

बहिष्कृत मार्कअप केवल यही है। इसका मतलब यह नहीं है कि ब्राउज़र नहीं जानता कि इसके साथ क्या किया जाए लेकिन आप उस पर भरोसा नहीं कर सकते क्योंकि ब्राउज़र विक्रेता किसी भी समय इसके लिए समर्थन छोड़ने के लिए स्वतंत्र हैं।

यदि मार्कअप बदल रहा है, तो यह सर्वर की ओर है या जावास्क्रिप्ट के साथ किया गया है।

संबंधित मुद्दे

 संबंधित मुद्दे