2010-11-05 5 views
1

J'ai un fichier .htc dont le comportement est attaché à un div dans ma page (div # test). Dans le fichier, il existe une balise en haut, la mise en place du comportement:Transforme le contenu d'un fichier .htc en Javascript 'normal'

<PUBLIC:ATTACH EVENT="ondocumentready" FOR="element" ONEVENT="function1()" /> 

Et dans tout le fichier, il y a des appels à « élément », & this.element - que je présume sont ensuite référence à cette test div #.

Si je voulais prendre le JS de ce fichier, serait-il possible de mettre dans la page principale .html? J'ai essayé de faire des appels à la fonction sur le chargement de document, mais je ne peux pas obtenir ma syntaxe correcte.

J'essaie:

document.getElementById.('test').attachEvent(onlonad, function1()); 

apprécierait tous les pointeurs, si je fais quelque chose de mal de base, ou si quelqu'un peut me dire pourquoi le faire à tous serait une mauvaise idée! =)

Répondre

0

Vous avez un point au mauvais endroit, vous passez une variable non définie à la fonction et que vous appelez function1() au lieu de le transmettre:

document.getElementById.('test').attachEvent(onlonad, function1()); 
//     ^this    ^^^ and these ^^ 

La syntaxe correcte serait

document.getElementById('test').attachEvent("onload", function1); 

Notez également que seuls quelques éléments prennent en charge l'événement onload - images, scripts et le corps (qui correspond à window.onload).

Si vous souhaitez effectuer des appels sur le chargement de documents, il est gênant dans IE car il ne prend pas en charge l'événement de document prêt pris en charge par les autres navigateurs. Il existe des façons de contourner cela, ou vous pouvez utiliser l'événement window.onload:

window.onload = function() { 
    // Code to execute when the window is loaded here 
} 
Questions connexes