J'ai pris le code du MSDN page on Matrix Filters et l'ai légèrement modifié. Les fonctions tous attendent une entrée variable oObj
qui se transmet à l'origine de la onfilterchange
:À quoi cela fait-il référence dans un attribut onfilterchange?
<DIV ID="oDiv" STYLE="position:absolute;
filter:progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand')"
onfilterchange="fnSpin(this)" >
Ce que je suis en train d'essayer de faire est d'envoyer des valeurs arbitraires à la fonction setRotation
en utilisant l'événement onclick
d'un bouton:
<input type="button" onclick="var theDiv = document.getElementById('oDiv'); setRotation(theDiv,45)" value="Set">
Malheureusement, lorsque je clique sur le bouton, j'obtiens une erreur: Objet attendu. J'ai évidemment mal compris ce que this
fait exactement dans le onfilterchange
- je pensais que ce serait l'élément HTML avec ID oDiv. Autant que je sache, filters should exist on the DIV element. Je me souviens avoir lu récemment une excellente description de ce que this
fait référence à différentes situations dans Javascript: The Good Parts, mais je n'ai pas accès à la version imprimée en ce moment, et la recherche de l'édition Safari pour "ceci" n'a pas été très productive.
choses que j'ai essayé (la plupart du temps dans l'espoir que c'est un bug IE obscure):
- Ayant
document.getElementById('oDiv')
comme premier argument àsetRotation
- En utilisant
document.all
au lieu degetElementById
- Utilisation des propriétés différentes tel que
styles
En fait, je viens de me rendre compte que j'ai une faute de frappe bien pire - j'ai setRotation et non fnSetRotation. Je suis un muppet! – robertc