在线Office文档编辑ActiveX插件DsoFramer

在线Office编辑插件DsoFramer

  • [需求]
从服务器获取相应文件流,文件格式(word|excel|txt),在网页中呈现。 打开的文件不准许(复制、编辑),只准许(查看、打印) 排除其它非正常方式获取文档内容,如:(拍照、抓屏) 不需要考虑非IE浏览器、非window。
[使用DsoFramer实现:]
[加载控件]
<object id="FramerControl1" style="left: 0px; width: 95%; top: 0px; height: 350px;" classid="clsid:00460182-9E5E-11D5-B7C8-B8269041DD57" codebase="dsoframer.ocx#version=2,2,0,8"> </object>
[使用中遇到的问题]
灾难性故障问题,此问题的解决办法,见代码:
window.$=function(id) {return typeof id == 'string' ? document.getElementById(id) : id;}; /** * 调用插件 */ function doCallObject() { window.setTimeout(doCallObjectReadPortal, 50); } /** * 插件入口 */ function doCallObjectReadPortal() { nxCoDocGcObj.doOpen($('serverAddress'),$('fileRelName'),false, $('docType')); window.clearTimeout(); } var globalObj = new Object(); /** * 插件控制#打开文件 * @param urlPath 网络地址 * @param filePath 文件名称 * @param canWrite 是否可写 * @param docType 文件类型{Excel.Sheet|Word.Document} */ globalObj.doOpen=function(urlPath,filePath,canWrite,docType) { var requestTmpl = "/com.hd.DoServlet?func=NX_CO_DOC_GC&act=doGetFile&selectedCodes=@FILE_PK@"; requestTmpl = requestTmpl.replace(/@FILE_PK@/ig, filePath); var filePathUrl = urlPath ? urlPath.concat(requestTmpl) : requestTmpl ; var debugInfo = new Array(); if ("" != filePathUrl) { var pluginObj = $('FramerControl1'); pluginObj.Open(filePathUrl,true, docType); pluginObj.SetMenuDisplay(0x124); //设置文件保护 pluginObj.ProtectDoc(1,2,"0x0xx0x0x0x"); pluginObj.SetValue("0x0x0x0x0x0x","::DOCPROP:PassWord"); pluginObj.SetValue("x0x0x0x0x0x0","::DOCPROP:WritePW"); pluginObj.ShowRevisions(0); pluginObj.SetTrackRevisions(0); } } /** * 打印前 */ globalObj.doBeforePrint=function(e){ alert('beforePrint'); } /** * 打印后 */ globalObj.doAfterPrint=function(e) { alert('afterPrint'); }
OBJECT事件的监听
在对监听<object></object>事件时使用传统方式(onload/attachEvent)是不可以的,(现在还没找到原因,如果哪位朋友了解请赐教),现在使用以下方法来完成事件监听。
<script type="text/javascript"><!-- globalObj.doBeforePrint(); // --></script><script type="text/javascript"><!-- globalObj.doAfterPrint(); // --></script> [控件相关资料的获取]
http://blogs.msdn.com/erikaehrli/archive/2005/08/26/hostofficeinnet.aspx#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值