修改web office apps 默认在浏览器中打开
2012-02-24 11:56
465 查看
最近在搞鼓web office apps的时候发现,在新建文档的时候,
IE浏览器会默认检测本机是否安装了office系列,安装了的话会尝试用客户端office打开模板文档新建。
下图是客户端安装了office 2007 sp2版本的情况(测试了三个版本的office,office 2003、office 2007、office 2007 sp2,发现office 2007 sp2在新建过程中最趋稳定,并且能够识别form认证的站点文档)
调用客户端的代码实际是跟下面三个ActiveX有关
ActiveXObject("SharePoint.OpenDocuments.1");
ActiveXObject("SharePoint.OpenDocuments.2");
ActiveXObject("SharePoint.OpenDocuments.3");
有兴趣的话可以运行下面的代码测试一下
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
因为我们无法控制客户端是否安装了哪个版本的office,以及不同版本的office带来的问题,所以统一将新建文档的步骤都放在浏览器中进行,如图:
像这种功能微软应该会想到,所以其实我们可以在网站集功能中找到相关的设置:
首先要保证sharepoint网站开启了office web apps
然后把默认情况下,在客户端应用程序中打开文档停用掉。
为了保证成功率,再iisreset一下.
不过我在操作这个地方的时候出现问题了,这些步骤看上去仿佛都很完美,按道理说经过这些步骤后,web office 应该会忽略客户端office的调用,但是事与愿违,“星星还是那个星星,月亮还是那个月亮”,它还是调用客户端的office,汗!(不清楚这个情况到底是个例,还是这个问题是微软的一个bug,将来可能会修复)
既然按正常方式无效,那我们就自己改吧
其实在新建文档的时候,调用了core.js里面的一个函数
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
行了,我们就手动把函数改一下,只留下
createNewInBrowser(d, a, c)
即可。
iisreset,OK,问题解决。
IE浏览器会默认检测本机是否安装了office系列,安装了的话会尝试用客户端office打开模板文档新建。
下图是客户端安装了office 2007 sp2版本的情况(测试了三个版本的office,office 2003、office 2007、office 2007 sp2,发现office 2007 sp2在新建过程中最趋稳定,并且能够识别form认证的站点文档)
调用客户端的代码实际是跟下面三个ActiveX有关
ActiveXObject("SharePoint.OpenDocuments.1");
ActiveXObject("SharePoint.OpenDocuments.2");
ActiveXObject("SharePoint.OpenDocuments.3");
有兴趣的话可以运行下面的代码测试一下
<script type="text/javascript">
openDocObj = new ActiveXObject("SharePoint.OpenDocuments.2");
openDocObj.CreateNewDocument("http://www.abc.com/documents/sampleTemplate.dot", "http://www.abc.com/documents/");
</script>
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
因为我们无法控制客户端是否安装了哪个版本的office,以及不同版本的office带来的问题,所以统一将新建文档的步骤都放在浏览器中进行,如图:
像这种功能微软应该会想到,所以其实我们可以在网站集功能中找到相关的设置:
首先要保证sharepoint网站开启了office web apps
然后把默认情况下,在客户端应用程序中打开文档停用掉。
为了保证成功率,再iisreset一下.
不过我在操作这个地方的时候出现问题了,这些步骤看上去仿佛都很完美,按道理说经过这些步骤后,web office 应该会忽略客户端office的调用,但是事与愿违,“星星还是那个星星,月亮还是那个月亮”,它还是调用客户端的office,汗!(不清楚这个情况到底是个例,还是这个问题是微软的一个bug,将来可能会修复)
既然按正常方式无效,那我们就自己改吧
其实在新建文档的时候,调用了core.js里面的一个函数
function createNewDocumentWithRedirect(e, a, b, f, d, g, c) {
a: ;
if (g)
if (IsClientAppInstalled(b))
createNewInClient(e, a, b, f);
else
createNewInBrowser(d, a, c);
else if (IsClientAppInstalled(b) && c != 1)
createNewInClient(e, a, b, f);
else
createNewInBrowser(d, a, c)
}
.codearea{ color:black; background-color:white; line-height:18px; border:1px solid #4f81bd; margin:0; width:auto !important; width:100%; overflow:auto; text-align:left; font-size:12px; font-family: "Courier New","Consolas","Fixedsys","BitStream Vera Sans Mono", courier,monospace,serif}
.codearea pre{ color:black; line-height:18px; padding:0 0 0 12px !important; margin:0em; background-color:#fff !important}
.linewrap pre{white-space:pre-wrap; white-space:-moz-pre-wrap; white-space:-pre-wrap; white-space:-o-pre-wrap; word-wrap:break-word; word-break:normal}
.codearea pre.alt{ background-color:#f7f7ff !important}
.codearea .lnum{color:#4f81bd;line-height:18px}
行了,我们就手动把函数改一下,只留下
createNewInBrowser(d, a, c)
即可。
iisreset,OK,问题解决。
相关文章推荐
- 修改web office apps 默认在浏览器中打开
- SharePoint禁用(Office Web Apps)在word打开,配置启用浏览器功能的文档的默认打开行为
- sharepoint:浏览器中直接打开文档(office web apps)、打开文档错误
- 安装office web apps后浏览器无法打开Excel的问题 推荐
- 如何修改默认打开QQ的要闻的浏览器
- SharePoint 2013 OWA(Office Web Apps)安装部署(一) 根据网络文章做了修改和一些错误的处理方式。
- Webview展示网页,超链接使用默认浏览器打开
- Win7 下http,https协议的默认打开浏览器修改
- Sharepoint 使用 Office Web Apps 在线浏览器查看 PDF文件
- 一个修改注册表,使浏览器默认不直接打开已知后缀的下载文件,而是下载后确认,且单独打开的vbscript脚本
- 【Web前端笔记】浏览器页面白边问题,css修改默认边距
- SharePoint2010:从用户控件中打开文档 -Open document(s) in Office web apps (from User controls)
- 安装office web apps,基于浏览器浏览查看office文件
- Android使用WebView的打开链接的方式(当前的WebView或者默认浏览器)
- Webview展示网页,超链接使用默认浏览器打开
- flex builder - 修改调试默认打开的浏览器
- 如何在Web页面上直接打开、编辑、创建Office文档
- Ubuntu 修改默认的PDF打开方式
- android系统默认设置修改(1)-- 设置默认浏览器
- Skype for Business Server 2015-02-Office Web Apps-部署