DSOframer 的主要事件参考(一)

不了解DSOframer的朋友,可以先参考《DSOframer 的简单介绍和资源整理》

事件说明:事件需要注意格式。需要用<script>标签来声明事件。其中属性的含义为:

               Language:”语言类型”
               For:”控件的id”
               Event:”事件的名称”
注意事件执行体是在<script></script>标签之间,由于事件是由系统来回调的,即事件名称中的参数只需要写变量名即可,不能写常量。例如:

  1. <span style= "font-family:Microsoft YaHei;font-size:14px;"><script language=”Jscript” for=”TANGER\_OCX” event=”OnDocumentOpened(file,doc)”>

  2. //这里就是事件体,执行用户需要执行的方法

  3. </script></span>

常用的事件有下面4个:

1、 OnDocumentOpened
OnDocumentOpened( [in] BSTR File, [in] IDispatch* Document);
该事件在文档打开完毕时执行。第一个参数是文档路径或者URL,第二个参数是文档的自动化接口。比如,对于一个Word文档,第二个参数是一个Word.Document对象。

2、 OnDocumentClosed
OnDocumentClosed();
该事件在文档关闭之后执行。

3、 OnDocActivated
OnDocActivated([in] boolean IsActivated);
当控件被激活或者不激活时触发此事件。比如,切换窗口将会出发此事件。

4、 OnScreenModeChanged
OnScreenModeChanged(BOOL IsFullScreenMode)
此事件当控件在全屏/非全屏状态切换时被触发。参数说明了此时控件是处于全屏还是非全屏编辑模式。

注意:事件代码应直接写在HTML页面中,用Javascript的document.write()方法添加事件代码写到页面中,会导致事件无效。

让我们用个例子来了解以上4个事件怎么用:

  1. <span style="font-family:Microsoft YaHei;font-size:14px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <title></title>
  5. <script type="text/javascript">
  6. //全局变量

  7. var oframe;

  8. var isOpened = false;

  9. //初始化oframe对象

  10. function InitEvent() {

  11. oframe = document.getElementById("oframe");

  12. //alert("请您将IE的文档模式调成IE7标准模式");

  13. }

  14. //检查是否打开文档

  15. function CheckFileOpened() {

  16. if (!isOpened){

  17. alert( "You do not have a document open.");

  18. return false;

  19. } else {

  20. return true;

  21. }

  22. }

  23. //检查是否安装控件

  24. function CheckControlInstall() {

  25. if (typeof (oframe) == 'undefined'){

  26. alert( "You must install dsoframe control first.");

  27. return false;

  28. } else {

  29. return true;

  30. }

  31. }

  32. //新建Word文档

  33. function AddNewWord() {

  34. if (CheckControlInstall()){

  35. oframe.CreateNew( "Word.Document");

  36. }

  37. }

  38. //关闭Word文档

  39. function CloseWord() {

  40. if (CheckFileOpened()) {

  41. oframe.close();

  42. }

  43. }

  44. //dsoframe事件

  45. function OnDocumentOpened(str, obj) {

  46. isOpened = true;

  47. alert( "触发了dsoframe的OnDocumentOpened事件!");

  48. }

  49. function OnDocumentClosed() {

  50. isOpened = false;

  51. alert( "触发了dsoframe的OnDocumentClosed事件!");

  52. }

  53. </script>
  54. </head>
  55. <body onload="InitEvent()">
  56. <div>
  57. <table width="100%">
  58. <tr>
  59. <td width="130px" style="vertical-align: top;">
  60. <input type="button" value="新建Word文档" onclick="AddNewWord()" />
  61. <input type="button" value="关闭Word文档" onclick="CloseWord()" />
  62. </td>
  63. <td>
  64. <object classid="clsid:00460182-9E5E-11d5-B7C8-B8269041DD57" id="oframe" width="100%"

  65. height="500px" codebase="ActiveX/DSOframer/DSOframer.CAB#version=1,0,0,0">

  66. <param name="BorderStyle" value="1" />
  67. <param name="TitlebarColor" value="52479" />
  68. <param name="TitlebarTextColor" value="0" />
  69. <param name="Menubar" value="1" />
  70. <param name="Titlebar" value="0" />
  71. </object>
  72. <div style="display: none">
  73. <!-- dsoframe事件 开始 -->
  74. <script type="text/javascript" language="jscript" for="oframe" event="OnDocumentOpened(str,obj)">
  75. OnDocumentOpened(str,obj);

  76. </script>
  77. <script type="text/javascript" language="jscript" for="oframe" event="OnDocumentClosed()">
  78. OnDocumentClosed();

  79. </script>
  80. <!-- dsoframe事件 结束 -->
  81. </div>
  82. </td>
  83. </tr>
  84. </table>
  85. </div>
  86. </body>
  87. </html></span>
点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )