2010-03-02 15 views
1

J'ai une page où j'utilise Mootools 1.2.4 et MediaboxAdvanced comme une visionneuse. Je ne peux pas sembler obtenir la chose de travail en raison d'une erreur javascript particulierdocument.body est null

document.body est nul

à l'initialisation de Mediabox:

$(document.body).adopt(
    $$([ 
      overlay = new Element("div", {id: "mbOverlay"}).addEvent("click", close), 
      center = new Element("div", {id: "mbCenter"}) 
    ]).setStyle("display", "none") 
); 

La page est here . Si vous cliquez sur le nom du mec, sur l'image ou sur le bouton Plus d'infos en bas à droite, il est supposé lancer la Mediabox. Via Firebug, j'ai confirmé que le CSS est en cours de chargement, que mootools est en cours de chargement et que le script Mediabox est en cours de chargement; tous les chemins vers les images et tout sont corrects aussi.

Des idées?

+0

désolé au sujet de ma réponse dead-wrong :-) Je l'ai supprimé. – Pointy

+0

Je ne reçois pas cette erreur. J'en ai deux autres, cependant: 'non borné entre parenthèses dans mootools.js (ligne 67)' et 'Accordéon n'est pas défini dans mootools-accordéion.js (ligne 7) '. – MikeWyatt

+1

même - vous devez charger mootools-more (l'obtenir depuis http://mootools.net/more), activer FX.accordion et activer automatiquement les dépendances dont vous avez besoin. –

Répondre

1

Vous ne pouvez utiliser $ que sur un élément renvoyé par getElementById. Une solution de contournement simple consiste à utiliser plutôt $$.

$$('body')[0].adopt... 
+0

Brillant! Merci beaucoup! –

+2

également garder à l'esprit la raison pour laquelle cela ne fonctionne pas est dans votre common.js: 'function $ (id) {return document.getElementById (id);}' - quand mootools trouve que $ est déjà défini, il tombe en compatibilité mode et fait référence à document.id comme alias pour $. vous pouvez envelopper les appels à $ via mootools dans une fonction anon comme: '(function ($) {... faire des choses en utilisant $}) (document.id);' ou vous pouvez supprimer la fonction de common.js comme mootools on va répliquer l'effet. –

+0

Compris. Je ne vais pas me tromper, car il semble être assez stable en ce moment. Votre aide était vraiment inestimable. –