2009-04-14 13 views
9

मैंने हाल ही में आईई 8 स्थापित किया है और मुझे jquery $ (दस्तावेज़) .ready ईवेंट आग लगने लगते हैं। क्या कोई विशेष विचार है कि मुझे याद आ रही है? Litterally, यह सब मैं अपने html में है और यह क्रोम और फ़ायरफ़ॉक्स में अपेक्षा के अनुरूप काम करता है:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Page full of awesomeness</title> 
    <script type="text/javascript" src="~/Scripts/jquery-1.3.2.js" /> 
    <script type="text/javascript">   
     $(document).ready(function() { 
      alert("Hello?");   
     }); 
    </script> 
</head> 

<body> 

</body> 

Internet Explorer में, पेज सिर्फ घटना के बिना लोड करता है। कोई अलर्ट बॉक्स नहीं है और मुझे कोई भी जावास्क्रिप्ट त्रुटियों की रिपोर्ट नहीं दिखाई दे रही है। क्या यह कुछ सामान्य है जिसे मैं अभी नहीं जानता?

+2

डब्ल्यू 3 सी वैधकर्ता की जांच करें और आप – Paco

उत्तर

32

इसे चालू करने का प्रयास करें।

<script type="text/javascript" src="~/Scripts/jquery-1.3.2.js" /> 
में

इस

<script type="text/javascript" src="~/Scripts/jquery-1.3.2.js"></script> 
+3

सही देखेंगे। आईई स्वयं बंद स्क्रिप्ट टैग पर कड़ी मेहनत करता है। देखें: http://webbugtrack.blogspot.com/2007/08/bug-153-self-closing-script-tag-issues.html – scunliffe

+4

यदि यह इस तरह से काम करने के लिए निर्दिष्ट है तो यह शायद ही विफल हो .. सिर्फ इसलिए कि आपको मिलता है परिणाम गलत होने का मतलब यह नहीं है कि आपको इसका उपयोग करना चाहिए। – meandmycode

+0

वह पूरी तरह से किया। धन्यवाद। मैं शायद उस के साथ कभी नहीं आना होगा। – MojoFilter

0

मेरा अनुमान होगा इस (खेद है कि मैं परीक्षण करने के लिए इस मशीन पर IE8 की जरूरत नहीं है)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title>Page full of awesomeness</title> 
    <script type="text/javascript" src="~/Scripts/jquery-1.3.2.js"></script> 
    <script type="text/javascript">   
     $(document).ready(function() { 
      alert("Hello?");   
     }); 
    </script> 
</head> 

<body> 

</body> 
इसके अलावा

मैं /Scripts/jquery-1.3.2.js उपयोग करने के लिए सुझाव देंगे यदि आप अपनी साइट की रूट का जिक्र कर रहे हैं

+0

मैं नहीं करूँगा। यदि आप /Script/jquery-1.3.2.js का उपयोग करते हैं तो आपकी साइट वर्चुअल वेब पर काम नहीं करेगी। – cdmckay

+1

हां, ~ को हटाने का कोई कारण नहीं है, इसे हटाने से केवल आपके एप्लिकेशन को और अधिक भंगुर बना दिया जाएगा। – meandmycode

+0

वैसे यह मेरी राय थी। अतीत में मुझे "मानव यूआरएल" के भारी उपयोग वाले साइटों में पुस्तकालयों को जोड़ने के साथ कुछ समस्याएं थीं, इसलिए मैं उन्हें "/" (निश्चित रूप से यदि वे साइट के डोमेन रूट के अंतर्गत हैं) से लिंक करना पसंद करते हैं – Alekc

1

वर्तमान एक्सएचटीएमएल सख्त मानकों के साथ:

तब भी जब src निर्दिष्ट है, स्क्रिप्ट टैग एक खाली टैग नहीं है, और <script src=".... /> लिखा नहीं जा सकता है। यदि आप src शामिल करते हैं तो आपको उद्घाटन और समापन टैग के बीच कोई स्क्रिप्ट शामिल नहीं करनी चाहिए क्योंकि टैग के बीच किसी भी स्क्रिप्ट के ब्राउज़र हैंडलिंग विश्वसनीय नहीं है।

असल में, टैग को स्वयं बंद न करें। </script> का प्रयोग करें।

+0

एक्सएमएल विनिर्देशों से, ये भी नोटेशन बराबर हैं। यह आईई में एक बग है। – rds

+2

यह आईई में एक बग नहीं है। यह उम्मीद है कि दस्तावेज़ को 'टेक्स्ट/एचटीएमएल' के रूप में एक्सएमएल के रूप में माना जाएगा। एक्सएचटीएमएल 'टेक्स्ट/एचटीएमएल' के रूप में कार्य करता है एक हैक है और आपको संगतता दिशानिर्देशों का पालन करना होगा: http://www.w3.org/TR/xhtml-media-types/#C_1 – Quentin

0

अन्य लोगों के कहने के अलावा, आप दस्तावेज़ के अंत में </html> भी खो रहे हैं। शायद सिर्फ एक प्रतिलिपि/पेस्ट त्रुटि :)

0

भी jQuery की संगतता की जांच करें। वर्तमान में jQuery 2.x केवल IE9 या बाद में समर्थन करता है। IE8

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