2009-04-14 15 views
9

Ho recentemente installato IE 8 e non riesco a ottenere l'evento $ jquery (document) .ready da attivare. Ci sono delle considerazioni speciali che mi mancano? Letteralmente, questo è tutto quello che ho nella mia html e funziona come previsto in Chrome e Firefox:

<!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> 

In Internet Explorer, la pagina carica solo senza incidenti. Non c'è una finestra di avviso e non riesco a vedere gli errori javascript segnalati. È qualcosa di normale di cui non so nulla?

+2

Controllare il validatore w3c e vedrete – Paco

risposta

32

Provare a girare questo.

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

In questa

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

corretto. IE non riesce a creare tag di script con chiusura automatica. vedi: http://webbugtrack.blogspot.com/2007/08/bug-153-self-closing-script-tag-issues.html – scunliffe

+4

È quasi un fallimento se è specificato che funziona in questo modo .. solo perché si ottiene risultati sbagliati non significa che dovresti usarlo. – meandmycode

+0

Questo lo ha fatto totalmente. Grazie. Probabilmente non sarei mai arrivato con quello. – MojoFilter

0

La mia ipotesi sarebbe questo (scusate non ho IE8 su questa macchina per testare)

<!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> 

anche io suggerirei di usare /Scripts/jquery-1.3.2.js se ti riferisci alla radice del tuo sito

+0

Non lo farei. Se usi /Script/jquery-1.3.2.js il tuo sito non funzionerà su un web virtuale. – cdmckay

+1

Sì, non c'è motivo di rimuovere il ~, rimuoverlo renderà la tua applicazione più fragile. – meandmycode

+0

Beh, era solo la mia opinione. In passato ho avuto alcuni problemi con il collegamento di librerie in siti con un uso intenso di "URL umani", quindi preferisco collegarli a "/" (ovviamente se sono sotto la radice del dominio del sito) – Alekc

1

Con gli attuali standard XHTML:

Anche se è specificato src, il tag di script non è un tag vuoto e non può essere scritto <script src=".... />. Se includi lo src non dovresti includere alcuno script tra i tag di apertura e di chiusura poiché la gestione del browser di qualsiasi script tra i tag non è affidabile.

Fondamentalmente, non chiudere automaticamente il tag. Utilizzare </script>.

+0

Dalle specifiche XML, anche queste notazioni sono equivalenti. Questo è un bug in IE. – rds

+2

Non è un bug in IE. Si aspetta un documento servito come 'text/html' da trattare come XML. XHTML è usato come 'text/html' è un hack e devi seguire le linee guida sulla compatibilità: http://www.w3.org/TR/xhtml-media-types/#C_1 – Quentin

0

Oltre a ciò che altri hanno detto, manca anche il </html> alla fine del documento. Forse solo un errore di copia/incolla :)

0

Controllare anche la compatibilità di jQuery. Attualmente jQuery 2.x supporta solo IE9 o versioni successive. Not IE8

Problemi correlati