2010-01-30 6 views
3

Je commence juste à jouer sur un Mac pour la première fois et j'ai créé une page HTML très simple qui utilise jQuery pour faire un simple échange de texte quand un tag h1 est cliqué. Lorsque je ne consulte pas la page via le serveur Web et que je l'ouvre directement dans Safari (fichier: ///Applications/xampp/xamppfiles/htdocs/test/mypage.html), cela fonctionne comme prévu. Cependant, lorsque je tente de voir par Apache (http://localhost/test/mypage.html) il ne fonctionne pas.Le script jQuery ne fonctionne pas lorsque la page est affichée sur localhost

Voici le code:

<html> 
    <head> 
     <title>My Awesome Page</title> 
     <script type="text/javascript" src="jquery.js"></script> 
     <script type="text/javascript" charset="utf-8"> 
      function sayHello() 
      { $('#foo').text('Hi there!'); 
      } 
     </script> 
    </head> 
    <body> 
     <h1 id="foo" onclick="sayHello()">Click me!</h1> 
    </body> 
</html> 

Suis-je manque quelque chose sur le Mac? Ne serait pas un paramètre Apache depuis son code côté client .. non?

Je devrais probablement mentionner aussi que je chargé XAMPP pour exécuter Apache et MySQL. J'ai testé Apache pour m'assurer qu'il fonctionne en utilisant un simple fichier PHP.

Steve

Répondre

3

Utilisez Firebug et accédez à la page. Une chose qui pourrait être un coupable est que le serveur web ne peut pas ouvrir le fichier jquery.js à cause de l'autorisation du fichier. Firebug montrera si le jquery chargé en page, même vous pouvez ajouter le code jQuery à la volée dans l'onglet Console.

Si vous y accédez à l'aide de Safari, utilisez Web Inspector et consultez l'éventuel message d'erreur affiché dans l'onglet Console.

Une dernière chose, prenez l'habitude d'éviter onclick, faire à la place:

<script type="text/javascript" charset="utf-8"> 
    function sayHello() 
    { 
    $('#foo').text('Hi there!'); 
    } 
    //wait DOM loaded 
    jQuery(function($){ 
    $('#foo').click(function(){ 
     sayHello(); 
    }); 
    }); 
</script> 

En outre, il est préférable de mettre le code js à la fin de la page, avant </body>, il ne bloquerait pas la page simultanée chargement de l'élément.

+0

Inspecteur Web Safari a aidé un groupe. Il était autorisations de fichier sur le fichier jquery.js. Les autres fichiers du dossier avaient un mode de 644 et le groupe d'administration alors j'ai couru les éléments suivants aux commandes dans un terminal et cela a fonctionné comme un champion. "chmod 644 jquery.js" et "chgrp admin jquery.js" –

Questions connexes