大家都知道 IE9 和以往的版本大有不同。IE9 对 DOM 关于 L2 和 L3的支持作出了很多的改进。正因如此,使 IE9 在与 DOM 的交互方面相对其它的浏览器来说有了显著的提升。还有一点需要明确,IE8 支持 DOM L1 和 部分 DOM L2 操作。

因为 IE9 的目标之一是符合 W3C 制定的交互操作系统,所以在 IE9 中移除了 attachEvent 的模式。DOM L2 和 L3 通过以下四项支持添加事件和 API 调用:

1.AddEventListener
2.RemoveEventListener
3.CreateEvent
4.DispatchEvent

这将带来什么挑战呢?让我们通过比较 Spread for ASP.NET 在 IE8 和 IE9 中应用区别去说明。Spread for ASP.NET 提供客户端脚本功能去支持 SpreadSheet 在客户端的操作。下面举一个简单的例子-“怎样去访问 Spread 单元格的值?”。在下面的例子中,我们将会使用 EditStoppted 事件在客户端获取单元格的值。

在编写客户端脚本代码之前,我们需要检测查看页面的浏览器是 IE8、IE9 还是 Firefox。代码如下:

 
window.onload = function() {

  var spread = document.getElementById("FpSpread1");

  if (document.all) {

    //检测是否是 IE9

    if (spread.addEventListener) {

      //

      spread.addEventListener("EditStopped", editStopped, false);

    }

    else

      //如果是 IE 其它的版本

      spread.onEditStopped = editStopped;

  }

  // 如果是 Firefox

  else {

    spread.addEventListener("EditStopped", editStopped, false);

  }

}

复制代码

浏览器中设置和IE9、Firefox的设置相同。

现在,我们将要写的代码是 "editStopped" 方法,这个方法将在单元格内容编辑执行完成后调用。

 
function editStopped() {

  var spread = document.getElementById("FpSpread1");

  var activeRow = spread.GetActiveRow();

  var activeCol = spread.GetActiveCol();

  var value = spread.GetValue(activeRow, activeCol);

  alert(value);

}

复制代码

为了 IE9 中更好的支持,Spread 提供了 HTC(HTML 组件)文件-"fpspreadie9.htc",如果你默认安装了 Spread.NET ,这个文件的位置是:
        Program Files\GrapeCity\Spread .NET 6\ASP.NET\v6.0.3501\fp_client\fpspread\6_0_3501_2008\HTC
通过这篇文章,我们只展示了一个简单的应用,如果你在使用 GrapeCity Spread for ASP.NET 时遇到困难,请联系我们。