不了解DSOframer的朋友,可以先参考《DSOframer 的简单介绍和资源整理》。
事件说明:事件需要注意格式。需要用<script>标签来声明事件。其中属性的含义为:
Language:”语言类型”
For:”控件的id”
Event:”事件的名称”
注意事件执行体是在<script></script>标签之间,由于事件是由系统来回调的,即事件名称中的参数只需要写变量名即可,不能写常量。例如:
For:”控件的id”
Event:”事件的名称”
注意事件执行体是在<script></script>标签之间,由于事件是由系统来回调的,即事件名称中的参数只需要写变量名即可,不能写常量。例如:
-
<span style="font-family:Microsoft YaHei;font-size:14px;"><script language=”Jscript” for=”TANGER_OCX” event=”OnDocumentOpened(file,doc)”>
-
//这里就是事件体,执行用户需要执行的方法
-
</script></span>
常用的事件有下面4个:
1、 OnDocumentOpened
OnDocumentOpened( [in] BSTR File, [in] IDispatch* Document);
该事件在文档打开完毕时执行。第一个参数是文档路径或者URL,第二个参数是文档的自动化接口。比如,对于一个Word文档,第二个参数是一个Word.Document对象。
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个事件怎么用:
-
<span style="font-family:Microsoft YaHei;font-size:14px;">
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<title></title>
-
<script type="text/javascript">
-
-
//全局变量
-
var oframe;
-
var isOpened = false;
-
-
//初始化oframe对象
-
function InitEvent() {
-
oframe = document.getElementById("oframe");
-
//alert("请您将IE的文档模式调成IE7标准模式");
-
}
-
-
//检查是否打开文档
-
function CheckFileOpened() {
-
if (!isOpened){
-
alert("You do not have a document open.");
-
return false;
-
}else {
-
return true;
-
}
-
}
-
-
//检查是否安装控件
-
function CheckControlInstall() {
-
if (typeof (oframe) == 'undefined'){
-
alert("You must install dsoframe control first.");
-
return false;
-
}else {
-
return true;
-
}
-
}
-
-
//新建Word文档
-
function AddNewWord() {
-
if (CheckControlInstall()){
-
oframe.CreateNew("Word.Document");
-
}
-
}
-
-
//关闭Word文档
-
function CloseWord() {
-
if (CheckFileOpened()) {
-
oframe.close();
-
}
-
}
-
-
//dsoframe事件
-
function OnDocumentOpened(str, obj) {
-
isOpened = true;
-
alert("触发了dsoframe的OnDocumentOpened事件!");
-
}
-
-
function OnDocumentClosed() {
-
isOpened = false;
-
alert("触发了dsoframe的OnDocumentClosed事件!");
-
}
-
-
</script>
-
</head>
-
<body onload="InitEvent()">
-
<div>
-
<table width="100%">
-
<tr>
-
<td width="130px" style="vertical-align: top;">
-
<input type="button" value="新建Word文档" onclick="AddNewWord()" />
-
<input type="button" value="关闭Word文档" onclick="CloseWord()" />
-
</td>
-
<td>
-
<object classid="clsid:00460182-9E5E-11d5-B7C8-B8269041DD57" id="oframe" width="100%"
-
height="500px" codebase="ActiveX/DSOframer/DSOframer.CAB#version=1,0,0,0">
-
<param name="BorderStyle" value="1" />
-
<param name="TitlebarColor" value="52479" />
-
<param name="TitlebarTextColor" value="0" />
-
<param name="Menubar" value="1" />
-
<param name="Titlebar" value="0" />
-
</object>
-
<div style="display: none">
-
<!-- dsoframe事件 开始 -->
-
<script type="text/javascript" language="jscript" for="oframe" event="OnDocumentOpened(str,obj)">
-
OnDocumentOpened(str,obj);
-
</script>
-
<script type="text/javascript" language="jscript" for="oframe" event="OnDocumentClosed()">
-
OnDocumentClosed();
-
</script>
-
<!-- dsoframe事件 结束 -->
-
</div>
-
</td>
-
</tr>
-
</table>
-
</div>
-
</body>
-
</html></span>