大家都知道 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);
- }
- }
复制代码 针对以上代码,有两点需要注意:
1.IE9 和 Firefox 使用相同的方法添加事件监听。
2.IE9以下的 IE 浏览器版本,我们需要调用 onEditStopped 事件。在其他浏览器中设置和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 时遇到困难,请联系我们。 |
|