潘正煦 Posted on 2017-03-24 6320
OFFICE2016 在工具栏右侧增加了共享功能,点击后可以保存文档到微软的云中。在某些情况下,只允许用户查看文件,不允许另存为,此功能提供了渠道让用户能够获取到文档,因此需要禁用掉。
TANGER_OCX_OBJ.ActiveDocument.CommandBars("Share").Enabled=false;
即可禁用。//TANGER_OCX_OBJ为NTKO OFFICE文档控件
if(16==TANGER_OCX_OBJ.getOfficeVer())
{
TANGER_OCX_OBJ.ActiveDocument.CommandBars("Share").Enabled=false;
}
NTKO Posted on 2017-03-16 2936
NTKO OFFICE文档控件支持自定义工具栏按钮,自定义工具栏上的按钮的布局默认是从左至右显示的。本文探讨的是如何利用js代码实现按钮从右至左的布局效果。
自定义工具栏的方法:
AddCustomToolButton(ButtonText, ImgIndex)
参数ButtonText:如果设置为""字符串则为不显示字符串
参数ImgIndex:只能设置内部拥有的图片,传入的是图片索引。
设定工具栏上的按钮状态的方法:
SetCustomToolButtonStatus(ButtonIndex, IsEnable, IsVisible)
参数ButtonIndex:在调用AddCustomToolButton创建的时候得到。
参数IsEnable:传True是可用,False为不可用
参数IsVisible:传True是显示,False是不显示
SetCustomToolButtonStatus
设置空白按钮为可见但不可用,这样给用户的感觉就是没有按钮的。<html>
<head>
<title>NTKO Office文档控件自定义工具栏按钮从右到左排列JS示例</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
#officecontrol { height:100% ; width:100%; position:absolute;}
body { margin:0px; padding:0px; overflow:hidden;}
</style>
<script type="text/javascript">
var TANGER_OCX_OBJ;
var TANGER_OCX_Width=0;
//每个空格4px 每个按钮加11px 每个中文12px 仅图片是16px 图片加文字图片是20px
var ButtonWordsNum=14; //所有按钮上的总字数
var ButtonNum=4; //定义的按钮数量加1(要加上空格按钮)
var ButtonWidthImageNum=2; //带图片的按钮的个数
var ButtonOnlyImageNum=0; //仅图片的按钮的个数
function init()
{
TANGER_OCX_OBJ=document.getElementById("TANGER_OCX");
TANGER_OCX_Width=document.getElementById("TANGER_OCX").offsetWidth;
TANGER_OCX_OBJ.Menubar=false;
AddNormalCustomToolButton(); //添加非全屏状态下的自定义工具栏
AddFullScreenCustomToolButton(); //添加全屏状态下的自定义工具栏
SetButtionVisable(true); //设置按钮的可用及可见状态
}
function CreateSpaceString(IsNoramalShow) //根据自定义按钮说占用的宽度,求出要用多少空格占位。
{
var spacestring="";
var num=0;
if(IsNoramalShow){
num=(TANGER_OCX_Width-6-ButtonWordsNum*12-ButtonNum*11-ButtonWidthImageNum*20-ButtonOnlyImageNum*16)/4;
}else{
num=(screen.width-8-ButtonWordsNum*12-ButtonNum*11-ButtonWidthImageNum*20-ButtonOnlyImageNum*16)/4;
}
for(var i=0;i<num;i++)
{
spacestring+=" ";
}
return spacestring;
}
function AddNormalCustomToolButton() //添加非全屏状态下的自定义工具栏
{
TANGER_OCX_OBJ.CustomToolBar=true;
TANGER_OCX_OBJ.AddCustomToolButton(CreateSpaceString(true), -1); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("保存文档", 0); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("关闭痕迹保留", 1); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("全屏缩放", -1); //添加自定义工具栏按钮
}
function AddFullScreenCustomToolButton() //添加全屏状态下的自定义工具栏
{
TANGER_OCX_OBJ.CustomToolBar=true;
TANGER_OCX_OBJ.AddCustomToolButton(CreateSpaceString(false), -1); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("保存文档", 0); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("关闭痕迹保留", 1); //添加自定义工具栏按钮
TANGER_OCX_OBJ.AddCustomToolButton("全屏缩放", -1); //添加自定义工具栏按钮
}
function SetButtionVisable(IsNoramalShow) //设置按钮的可用及可见状态
{
for(i=0;i<ButtonNum*2;i++)
{
if(IsNoramalShow)
{
TANGER_OCX_OBJ.SetCustomToolButtonStatus(i,(i==0||i>=ButtonNum)?false:true,(i>=ButtonNum)?false:true);
}else{
TANGER_OCX_OBJ.SetCustomToolButtonStatus(i,(i>=0&&i<=ButtonNum)?false:true,(i>=0&&i<ButtonNum)?false:true);
}
}
}
function CustomToolBarCom(btnIdx) //自定义按钮事件触发后执行的方法
{
if (0 == btnIdx) {
}else if (1 == btnIdx ||btnIdx==ButtonNum+1 ) {
alert(btnIdx);
} else if (3 == btnIdx ||btnIdx==ButtonNum+3 ) {
TANGER_OCX_OBJ.FullScreenMode=!TANGER_OCX_OBJ.FullScreenMode;
}else{
alert(btnIdx);
}
}
</script>
</head>
<body onload='init()' sroll="no">
<div id="officecontrol" class="officecontrol" >
<script type="text/javascript" src="officecontrol/ntkoofficecontroldemo.js"></script>
</div>
<script language="javascript" for="TANGER_OCX" event="OnCustomToolBarCommand(btnIdx)">
CustomToolBarCom(btnIdx);
</script>
<script language="javascript" for="TANGER_OCX" event="OnScreenModeChanged(IsFullScreenMode)">
SetButtionVisable(!IsFullScreenMode);
</script>
</body>
</html>
NTKO Posted on 2017-03-02 16135
当访问引用控件的网页时,NTKO OFFICE文档控件窗口不会出现,导致相关的引用控件的Javacript语句无法运行。网页上出现类似“无法加载控件,请检查浏览器安全设定”的错误提示,并且可能有JavaScript无法找到对象的错误提示。
为了解决NTKO OFFICE文档控件不能自动装载的问题,首先来看看浏览器装载对象涉及到的步骤。(暂时不考虑如防病毒软件或者其他过滤工具的影响)
对于HTML代码中引用控件的如下代码:
<object id="TANGER_OCX" classid="clsid:C9BC4DFF-4248-4a3c-8A49-63A7D317F404"
codebase="/path/to/OfficeControl.cab#version=4,0,0,5" width="100%" height="100%">
其中:
浏览器装载控件的流程大致如下:
本地Internet选项中的安全设定,在当前区域禁止下载已签名的ActiveX控件;
引用控件的网页中,<object 标记中的codebase属性指定不正确,导致浏览器无法下载OfficeControl.cab文件;
服务器上的OfficeControl.cab被破坏,失去正确的签名,或者使用了不正确的版本;
虽然服务器上的OfficeControl.cab正确,但是浏览器下载的有问题。这个可能会因为某些WEB服务器的mime的错误配置引起,导致服务器将OfficeControl.cab不以二进制文件的形式发送给浏览器;
本地Internet选项中的安全设定,在当前区域不允许运行ActiveX控件和插件;
还有可能是由于微软的补丁引起,或者其他防病毒软件或者过滤软件阻止了控件安装;
确认本地Internet选项中的安全设定中,允许下载已签名的ActiveX控件,并允许运行ActiveX控件和插件。
确认引用控件的网页中,<object 标记中的codebase=部分,正确指向了服务器上的OfficeControl.cab文件的URL[相对当前网页或者相对服务器根]。
从浏览器地址栏直接输入服务器上的OfficeControl.cab文件的URL,包含主机名,确认浏览器出现下载提示并且在下载保存后的OfficeControl.cab文件上,点击右键看属性,在出现的对话框中具有“数字签名”,且签名正确。
如果以上方法还不能解决问题,并且您的系统安装了“微软累积安全更新 MS05-052补丁”,请尝试如下步骤:
警告:如果使用注册表编辑器或其他方法错误地修改了注册表,则可能导致严重问题。这些问题可能需要重新安装操作系统才能解决。
1)单击“开始”,单击“运行”,键入 Regedit.exe,然后单击“确定”。
2)找到以下注册表子项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility
3)右键单击“ActiveX Compatibility”,查找NTKO OFFICE文档控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},如果该项目存在,右键单击右边的“Compatibility Flags”项目,然后单击“修改”。在“数值数据”框中,选择16进制,输入00800000,然后单击“确定”。
4)如果该NTKO OFFICE文档控件的CLSID不存在,则右键单击“ActiveX Compatibility”,指向“新建”,单击“项”,键入NTKO OFFICE文档控件的CLSID:{C9BC4DFF-4248-4a3c-8A49-63A7D317F404},然后按 Enter。
5)右键单击您在步骤 4 中创建的项,指向“新建”,然后单击“DWORD 值”。
6)键入 Compatibility Flags,然后按 Enter。
7)右键单击“Compatibility Flags”,然后单击“修改”。
8)在“数值数据”框中,选择16进制,输入00800000,然后单击“确定”。
9)退出注册表编辑器。