装载NTKO OFFICE文档控件页面出现提示:"按空格键或Enter键以激活并使用此控件"及其解决方案
1、问题表现
2、原因及示例代码
这个问题的出现是由于微软在新版本的浏览器中,对于ActiveX控件采用了不同的激活方式。
具体请参考如下原始文档的描述:[英文]
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/overview/activating_activex.asp
比如,对于如下HTML页面[假设为test.html]:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<TITLE>NTKO OFFICE文档控件装载方式修改测试</TITLE>
</head>
<body>
<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404" codebase="OfficeControl.cab#version=3,0,0,5" width="100%" height="100%">
<param name="Toolbars" value="-1">
<param name="BorderStyle" value="1">
<param name="Titlebar" value="0">
<param name="Menubar" value="-1">
<SPAN STYLE="color:red">不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置。</SPAN>
</object>
</body>
</html>
您将以上代码复制到记事本,并且保存为test.html文件,并使用浏览器打开,这时将会看到浏览器在控件窗口上方增加了一个虚线框对应的覆盖窗口,并且出现"按空格键或Enter键以激活并使用此控件"的提示。
3、解决方案
您可以采取如下方法解决此问题:
1)、将上述代码中的粗体部分,即从<object 开始,到</object>结束的部分,使用如下代码替换:
<script src="ntkoGenObj.js"></script>
得到结果如下,并保存test.html文件。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312">
<TITLE>NTKO OFFICE文档控件装载方式修改测试</TITLE>
</head>
<body>
<script src="ntkoGenObj.js"></script>
</body>
</html>
2)、在test.html文件的相同目录【或者,在您的当前引用控件网页所在的服务器目录】,创建一个js文件,命名为ntkoGenObj.js.
3)、在ntkoGenObj.js文件中,输入如下内容,并保存文件。
document.write('<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404" ');
document.write('codebase="OfficeControl.cab#version=3,0,0,5" width="100%" height="100%"> ');
document.write('<param name="Toolbars" value="-1"> ');
document.write('<param name="BorderStyle" value="1"> ');
document.write('<param name="Titlebar" value="0"> ');
document.write('<param name="Menubar" value="-1"> ');
document.write('<SPAN STYLE="color:red">不能装载文档控件。请在检查浏览器的选项中检查浏览器的安全设置。</SPAN> ');
document.write('</object> ');
4)、从浏览器打开test.html,这时,您将看到浏览器不再显示"按空格键或Enter键以激活并使用此控件"的提示。
|