这在onfilterchange属性中引用了什么?

时间:2009-09-03 14:17:20

标签: javascript internet-explorer

我从MSDN page on Matrix Filters获取了代码并略微修改了它。函数都期望输入变量oObj最初从onfilterchange传递:

<DIV ID="oDiv" STYLE="position:absolute;
filter:progid:DXImageTransform.Microsoft.Matrix(sizingMethod='auto expand')"
    onfilterchange="fnSpin(this)" >

我现在要做的是使用按钮的setRotation事件向onclick函数发送任意值:

<input type="button" onclick="var theDiv = document.getElementById('oDiv'); setRotation(theDiv,45)" value="Set">

不幸的是,当我点击按钮时,我得到一个错误:预期的对象。我显然误解了thisonfilterchange的确切含义 - 我认为这将是ID为oDiv的HTML元素。据我所知filters should exist on the DIV element。我记得最近在Javascript: The Good Parts中阅读了this在不同情况下所引用的内容的精彩描述,但我现在无法访问打印版本,并在Safari版本中搜索“this”hasn效率很高。

我尝试过的事情(主要是希望它是一个模糊的IE错误):

  • document.getElementById('oDiv')作为setRotation
  • 的第一个参数
  • 使用document.all代替getElementById
  • 使用styles
  • 等不同属性

Complete code is online here

1 个答案:

答案 0 :(得分:0)

在我看来你有一个错字:

此致:

<input type="button" onclick="var theDiv = document.getElementById('oDiv'); setRotation(theDiv,45)" value="Set">

的网站:

<input type="button" onclick="var theDiv = document.getElementById('oDiv').style; setRotation(theDiv,45)" value="Set">

theDiv似乎是指实际div本身的 style 属性。