最近在搞鼓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");
有兴趣的话可以运行下面的代码测试一下
<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>
因为我们无法控制客户端是否安装了哪个版本的office,以及不同版本的office带来的问题,所以统一将新建文档的步骤都放在浏览器中进行,如图:
![clip_image002[6] clip_image002[6]](http://images.cnblogs.com/cnblogs_com/poissonnotes/201202/201202241156104212.jpg)
像这种功能微软应该会想到,所以其实我们可以在网站集功能中找到相关的设置:

首先要保证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)
}
行了,我们就手动把函数改一下,只留下
createNewInBrowser(d, a, c)
即可。
iisreset,OK,问题解决。
分享到:
相关推荐
Office Web Apps 2013 是微软提供的一款在线版本的办公软件套件,它使得用户能够在Web浏览器中查看、编辑和共享Word、Excel、PowerPoint和OneNote文档。本安装配置文档主要涵盖如何在Windows环境中安装和配置Office ...
【部署 Office Web Apps Server】是针对IT专业人员的一项任务,主要目的是在本地环境中设置Office Web Apps Server,以便与SharePoint 2013和Lync Server 2013协同工作,提供在线预览和编辑Office文档的功能。Office...
OWC(Office Web Components)是微软提供的一组用于在 Web 应用程序中显示、编辑和创建 Microsoft Office 文件的技术。它允许用户在没有安装完整 Office 套件的情况下查看和编辑 Office 文件。 #### 问题背景 根据...
要在网页中预览Office文档,通常需要使用特定的控件或服务,如Microsoft的Office Web Apps Server(现已被Office Online Server取代)或第三方解决方案,如Aspose、Spire等。这些工具可以解析Office文档内容,并将...
- **云连接器概览**:SugarCRM的云连接器允许系统与第三方云服务进行无缝集成,比如Google Apps、Microsoft Office 365等。 #### 三、应用框架详解 - **入口点**:入口点是指系统开始执行的地方,通常是一个PHP...
� 暂不具备 Push Mail 和 Office(DataViz 、 QuickOffice 计划近期推出 ) 功能,目前主要面向的是普通消费 者 用户,对商业用户支持尚弱。 Android Android Android Android 带来的影响 ANDROID 的推出后可能影响的...