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.  
    //全局变量
  8.  
    var oframe;
  9.  
    var isOpened = false;
  10.  
     
  11.  
    //初始化oframe对象
  12.  
    function InitEvent() {
  13.  
    oframe = document.getElementById("oframe");
  14.  
    //alert("请您将IE的文档模式调成IE7标准模式");
  15.  
    }
  16.  
     
  17.  
    //检查是否打开文档
  18.  
    function CheckFileOpened() {
  19.  
    if (!isOpened){
  20.  
    alert("You do not have a document open.");
  21.  
    return false;
  22.  
    }else {
  23.  
    return true;
  24.  
    }
  25.  
    }
  26.  
     
  27.  
    //检查是否安装控件
  28.  
    function CheckControlInstall() {
  29.  
    if (typeof (oframe) == 'undefined'){
  30.  
    alert("You must install dsoframe control first.");
  31.  
    return false;
  32.  
    }else {
  33.  
    return true;
  34.  
    }
  35.  
    }
  36.  
     
  37.  
    //新建Word文档
  38.  
    function AddNewWord() {
  39.  
    if (CheckControlInstall()){
  40.  
    oframe.CreateNew("Word.Document");
  41.  
    }
  42.  
    }
  43.  
     
  44.  
    //关闭Word文档
  45.  
    function CloseWord() {
  46.  
    if (CheckFileOpened()) {
  47.  
    oframe.close();
  48.  
    }
  49.  
    }
  50.  
     
  51.  
    //dsoframe事件
  52.  
    function OnDocumentOpened(str, obj) {
  53.  
    isOpened = true;
  54.  
    alert("触发了dsoframe的OnDocumentOpened事件!");
  55.  
    }
  56.  
     
  57.  
    function OnDocumentClosed() {
  58.  
    isOpened = false;
  59.  
    alert("触发了dsoframe的OnDocumentClosed事件!");
  60.  
    }
  61.  
     
  62.  
    </script>
  63.  
    </head>
  64.  
    <body onload="InitEvent()">
  65.  
    <div>
  66.  
    <table width="100%">
  67.  
    <tr>
  68.  
    <td width="130px" style="vertical-align: top;">
  69.  
    <input type="button" value="新建Word文档" onclick="AddNewWord()" />
  70.  
    <input type="button" value="关闭Word文档" onclick="CloseWord()" />
  71.  
    </td>
  72.  
    <td>
  73.  
    <object classid="clsid:00460182-9E5E-11d5-B7C8-B8269041DD57" id="oframe" width="100%"
  74.  
    height="500px" codebase="ActiveX/DSOframer/DSOframer.CAB#version=1,0,0,0">
  75.  
    <param name="BorderStyle" value="1" />
  76.  
    <param name="TitlebarColor" value="52479" />
  77.  
    <param name="TitlebarTextColor" value="0" />
  78.  
    <param name="Menubar" value="1" />
  79.  
    <param name="Titlebar" value="0" />
  80.  
    </object>
  81.  
    <div style="display: none">
  82.  
    <!-- dsoframe事件 开始 -->
  83.  
    <script type="text/javascript" language="jscript" for="oframe" event="OnDocumentOpened(str,obj)">
  84.  
    OnDocumentOpened(str,obj);
  85.  
    </script>
  86.  
    <script type="text/javascript" language="jscript" for="oframe" event="OnDocumentClosed()">
  87.  
    OnDocumentClosed();
  88.  
    </script>
  89.  
    <!-- dsoframe事件 结束 -->
  90.  
    </div>
  91.  
    </td>
  92.  
    </tr>
  93.  
    </table>
  94.  
    </div>
  95.  
    </body>
  96.  
    </html></span>

 

posted @ 2018-08-08 11:02  秀才王朝  阅读(837)  评论(0编辑  收藏  举报