2012-07-21 14 views
11

के साथ काम नहीं कर रहा है मैंने अभी डाउनलोड किया है आईपैड के लिए Google क्रोम और मैंने देखा कि यह एएसपी.नेट 4 वेबसाइटों के साथ काम नहीं करता है!आईपैड पर क्रोम एएसपी.NET 4

उदाहरण के लिए, एक साधारण पृष्ठ बनाने के लिए:

<%@ Page Language="VB" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<script runat="server"> 

Protected Sub LinkButton1_Click(sender As Object, e As System.EventArgs) 
    Response.Write("Link button was clicked") 
End Sub 

</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:LinkButton ID="LinkButton1" runat="server" OnClick="LinkButton1_Click">LinkButton</asp:LinkButton> 
    </div> 
    </form> 
</body> 
</html> 

अब लिंक बटन क्लिक करने का प्रयास है, लेकिन यह पोस्टबैक ईवेंट सक्रिय नहीं है।

मुझे डीबग नहीं लग रहा है क्योंकि यह पता लगाने के लिए कोई जावास्क्रिप्ट कंसोल नहीं है।

!! अद्यतन करें !!

मैंने पाया कि आप से सेटिंग Chrome में ड्रॉप डाउन मेनू यह काम करने के लिए प्राप्त करने के लिए अनुरोध डेस्कटॉप साइट चयन करना होगा।

!! अद्यतन करें !!

एएसपी.नेट कुछ ब्राउज़रों के सबसे वर्तमान संस्करणों को नहीं पहचानता है, और परिणामस्वरूप उन्हें डाउन-स्तरीय ब्राउज़र के रूप में व्यवहार करेगा। (मूल रूप से: कोई जावास्क्रिप्ट नहीं।) अद्यतन ब्राउज़र-परिभाषा फ़ाइलों को अद्यतन करना है।

हम क्रोम के लिए एक अपडेटेड ब्राउज़र-परिभाषा फ़ाइल कहां प्राप्त कर सकते हैं?

+0

asp.net ग्राहक ब्राउज़रों के साथ कुछ नहीं करना - ब्राउज़रों क्या सर्वर वे सिर्फ एचटीएमएल पढ़ पीछे है नहीं पता था। – Aristos

+0

यह कोड है जो पोस्टबैक घटनाओं के लिए स्वत: जेनरेट किया गया है जो समस्याएं पैदा कर रहा है। यह संभवतः गूगल्स गलती है - शायद 'आईपैड साइट मोड' (जो कुछ भी है) में नहीं, उनके आईपैड ब्राउज़र के साथ एक बग। –

+0

मैं केवल Google क्रोम का उपयोग करता हूं और बहुत कठिन कार्यक्रमों के साथ कोई समस्या नहीं थी। – Aristos

उत्तर

8

मैं एक ही समस्या पैदा हुई। अधिकांश चीजें मेरे पृष्ठ पर ठीक काम करती हैं, क्लाइंट साइड पर संशोधित कुछ आइटम गलत तरीके से प्रदर्शित होते हैं।

मैं हेडर फाइल कि ipad पर प्रत्येक ब्राउज़र से लौटाए जाते हैं का निरीक्षण किया और पाया कि जब डेस्कटॉप मोड में क्रोम में, यह सिर्फ होने के लिए एक एक मैक बॉक्स नाटक किया गया था, शीर्षक में निम्नलिखित भेजने: मोज़िला /5.0+(Macintosh;+Intel+Mac+OS+X+10_7_3)+AppleWebKit/534.53.11+(KHTML,+like+Gecko)+Version/5.1.3+Safari/534.53.10

और जब यह मानक मोड में होता है तो यह शीर्षलेख में निम्नलिखित को महसूस करता है: मोज़िला/5.0 + (आईपैड; + सीपीयू + ओएस + 6_0 + जैसे + मैक + ओएस + एक्स) + ऐप्पलवेबकिट/534.46.0 + (केएचटीएम, + जैसे + गीको) + क्रियोस/21.0.1180.82 + मोबाइल/10 ए403 + सफारी/7534.48.3

मैंने अपने "app_browsers" निर्देशिका में एक नया ब्राउज़र जोड़ने का प्रयास किया, "क्रोम" की प्रतिलिपि बनाकर इसे "क्रोमियोस" नाम दिया, और क्रॉस के साथ "क्रोम" उपयोगकर्ता को बदल दिया।इसने कुछ भी नहीं किया, और मुझे यह भी यकीन नहीं है कि "app_Browsers" निर्देशिका में फ़ाइलें कुछ भी कर रही हैं।

जब मैं इस प्रश्न पर आया था। उपयोगकर्ताओं द्वारा सुझाए गए उत्तरों वामशिक और जे डगलस, जब मेरे साथ मिलकर काम किया गया।

जय हालांकि गलत था कि इसमें गलत उपयोगकर्ता एजेंट है (यह "क्रियो" होना चाहिए)।

उपयोगकर्ता geo1701 हालांकि प्रत्येक पृष्ठ पर इसे जोड़ने के बारे में शिकायत की। यह आसानी से सिस्टम.Web.UI.Page को प्राप्त करने वाली कक्षा बनाने के द्वारा किया जा सकता है और फिर "संरक्षित शून्य पेज_PreInit" ईवेंट के साथ कोड को ऊपर जोड़ सकता है, और उसके बाद प्रत्येक वेब पेज पर विरासत को अपनी नई कक्षा के साथ प्रतिस्थापित कर सकता है। फिर यदि आपको कभी भी प्रत्येक पृष्ठ में कुछ जोड़ने की ज़रूरत है, तो आपके पास उस वर्ग को भी जोड़ने के लिए है।

मैं यह भी सोच रहा हूं कि क्या इसे वैश्विक.एक्सएक्स कक्षा में जोड़ने का कोई तरीका है? लेकिन मैं अनुमान लगा रहा हूं ...

अभी भी एक बेहतर समाधान की तलाश में है। अगर मुझे कोई मिलता है, तो मैं अपडेट करूंगा।

मिले निम्नलिखित संबंधित पोस्ट:

Chrome for iOS user agent on iPad

ASP.NET Webforms Doesn't Render Postback JavaScript Function for Chrome/iOS

अद्यतन मैं स्कॉट Hanselman द्वारा this पाया। जबकि वह कुकीज़ के बारे में बात कर रहा है, मुझे लगता है कि उसके सुझाव हमें सही दिशा में भेज सकते हैं।

ठीक है! अंतिम अद्यतन !!!

.NET Framework 4.5 स्थापित करने के बाद, और मेरी app_browsers निर्देशिका से फ़ाइलों को निकालने के बाद, मेरे आईपैड पर क्रोम काम कर रहा है। मैंने नए में प्रविष्टियों को देखा .ब्रोसर फ़ाइलें 4.5 द्वारा प्रदान की गईं फ़ाइलें, और कुछ भी उल्लेखनीय नहीं था, इसलिए मुझे लगता है कि कुछ और भी .browser फ़ाइलों को अपडेट कर रहा था।

नेट ढांचा 4.5 डाउनलोड किया जा सकता here

+0

4.5 की उन्नति एक आकर्षण की तरह काम किया! धन्यवाद! –

1

एएसपी.नेट आईपैड पर क्रोम को "डाउनलेवल" ब्राउज़र के रूप में गलत तरीके से पहचान रहा है जो जावास्क्रिप्ट का समर्थन नहीं करता है। स्तर ब्राउज़र ब्राउज़ करने के लिए ASP.NET उपयोगकर्ता एजेंट स्ट्रिंग का उपयोग करता है। एक "uplevel" ब्राउज़र के रूप में पता लगाया जा क्रोम के लिए मजबूर करने के लिए, आप यह कर सकते हैं:

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    if (Request.UserAgent != null && Request.UserAgent.IndexOf("chrome", StringComparison.OrdinalIgnoreCase) > -1) 
    { 
     this.ClientTarget = "uplevel"; 
    } 
} 
+1

प्रत्येक पृष्ठ पर इस प्रकार के कोड को जोड़ने के बजाय machine.config में पहचान को ओवरराइड करने का एक तरीका होना चाहिए। –

0

यह संभावना ASP.NET अमान्य पृष्ठ उत्पन्न करता है।

मुझे आईफोन के बारे में पता नहीं है, लेकिन एंड्रॉइड संस्करण में Remote Debugging है। आप वहां पेज का निरीक्षण करने का प्रयास कर सकते हैं।

+0

आपको क्या लगता है कि यह संभवतः ASP.NET एक अमान्य पृष्ठ उत्पन्न करता है? ध्यान में रखते हुए हम यहां एएसपी.नेट 4.0 के बारे में बात कर रहे हैं। –

+0

asp.net जावास्क्रिप्ट प्रस्तुत नहीं करता है क्योंकि यह ब्राउज़र को डाउनलवेल के रूप में मानता है। – Ashish

1

मेरे लिए काम किया नीचे ...

if (Request.UserAgent != null && Request.UserAgent.IndexOf("crios", StringComparison.OrdinalIgnoreCase) > -1) 
{ 
    this.ClientTarget = "uplevel"; 
} 
संबंधित मुद्दे