Office js Word对象在Word2016中未定义

Office js Word对象在Word2016中未定义,office-js,word-addins,Office Js,Word Addins,我正在为Word编写外接程序。我有Word 2016Office.context.requirements.isSetSupported('WordApi',1.1)在本例中应该返回true,但它返回false。并且单词对象未定义。有什么想法吗?多谢各位 Windows 7 Enterprise上的Microsoft Word 2016 MSO(16.0.6326.1022)32位 以下是我的一些代码片段: 在我的html的标题中,我有以下内容: <script src="https://

我正在为Word编写外接程序。我有Word 2016
Office.context.requirements.isSetSupported('WordApi',1.1)
在本例中应该返回
true
,但它返回
false
。并且
单词
对象未定义。有什么想法吗?多谢各位

Windows 7 Enterprise上的Microsoft Word 2016 MSO(16.0.6326.1022)32位

以下是我的一些代码片段:

在我的
html
标题中,我有以下内容:

<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
<script src="local/js/common.js"></script>
Office.context.requirements
没有
isSetSupported
功能

更新: 有一件事我不认为是相关的,但显然是相关的。加载时我的html页面重定向到另一个html页面,这似乎是导致问题的原因。我之所以有重定向,是因为当xml文件

而不是

html文件的内容被缓存,并且没有办法(至少我没有找到)清除这个缓存。因此,我在index.html中所做的任何更改都不会通过。因此,在加载index.html时,我会使用
window.location='main.html?'+datestamp
,这就达到了目的,但随后我就陷入了这种奇怪的境地

以下是index.html:

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />
    <script>
        function init() {
            var timestamp = new Date().valueOf();
            window.location = "main.html?" + timestamp;
        }
    </script>
</head>
<body onload="init()">

</body>
</html>

函数init(){
var timestamp=新日期().valueOf();
window.location=“main.html?”+时间戳;
}

您是否有
办公室。是否在页面上初始化
?您提到的API只有在Office有机会初始化后才可用

你看到的所有样品都应该包括

Office.initialize = function (reason) {
    ...
};
线路


~Michael Zlatkovsky,微软办公扩展团队的开发人员

页面上是否有
Office.initialize
?您提到的API只有在Office有机会初始化后才可用

你看到的所有样品都应该包括

Office.initialize = function (reason) {
    ...
};
线路


~Michael Zlatkovsky,微软办公扩展团队的开发人员,唯一对我有效的方法(我必须说这是一个可怕的解决方案)是在xml中的html文件地址中添加一个查询字符串参数

然后我需要在每次index.html更改时更改此参数,并重新附加外接程序


如果有更好的解决方案,请分享。

唯一对我有效的方法(我必须说这是一个糟糕的解决方案)是在我的xml中的html文件地址中添加一个查询字符串参数

然后我需要在每次index.html更改时更改此参数,并重新附加外接程序


如果有更好的解决方案,请与大家分享。

这里有许多信息缺失,因此我将尝试澄清我的所有假设。 可以肯定的是,为了启用您的场景,您不需要更改清单(在这个问题上称为“xml文件”)

还有

a。我看你赢了 B您正在使用正确配置为受信任位置的基于文件共享的目录。 C您在该位置上删除了清单(xml)。 D清单的源位置指向正确的html位置

如果上面所有的假设都是正确的,你就不会有任何问题。 我将html和js文件放在同一个文件夹中

这是Html文件的内容

    <!DOCTYPE html>
    <html>
    <head>

   <script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
   <script src="common.js"></script>

<title></title>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<script>
    function init() {
        var timestamp = new Date().valueOf();
    //    window.location = "main.html?" + timestamp;
    }
</script>
</head>
<body onload="init()"> 
      Hello World!
<div id='result'></div>
</body>
</html>
最后是清单:

 <?xml version="1.0" encoding="UTF-8"?>
 <!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->
 <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
 <Id>90400971-e367-4e1b-b9bf-fc2163635c37</Id>
 <Version>1.0.0.0</Version>
 <ProviderName>Juanelo Balmori</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Code FLow Word.js" />
<Description DefaultValue="Code Flow Sample!"/>

<Capabilities>
   <Capability Name="Document" />
 </Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="\\*name of your share*\index.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>

90400971-e367-4e1b-b9bf-fc2163635c37
1.0.0.0
胡安洛·巴尔莫里
恩美
读写文件
请注意,您需要为基于文件共享的目录受信任位置创建共享

如果所有这些都到位,我将获得预期的功能。如果我更改HTML文件的内容,则在F5任务窗格时会反映出来

请注意,您可能必须获得一个栏才能运行本地html页面,只要确保在任务窗格中允许,您就可以了


谢谢

这里有许多信息缺失,因此我将尝试澄清我的所有假设。 可以肯定的是,为了启用您的场景,您不需要更改清单(在这个问题上称为“xml文件”)

还有

a。我看你赢了 B您正在使用正确配置为受信任位置的基于文件共享的目录。 C您在该位置上删除了清单(xml)。 D清单的源位置指向正确的html位置

如果上面所有的假设都是正确的,你就不会有任何问题。 我将html和js文件放在同一个文件夹中

这是Html文件的内容

    <!DOCTYPE html>
    <html>
    <head>

   <script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
   <script src="common.js"></script>

<title></title>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<script>
    function init() {
        var timestamp = new Date().valueOf();
    //    window.location = "main.html?" + timestamp;
    }
</script>
</head>
<body onload="init()"> 
      Hello World!
<div id='result'></div>
</body>
</html>
最后是清单:

 <?xml version="1.0" encoding="UTF-8"?>
 <!--Created:cb85b80c-f585-40ff-8bfc-12ff4d0e34a9-->
 <OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TaskPaneApp">
 <Id>90400971-e367-4e1b-b9bf-fc2163635c37</Id>
 <Version>1.0.0.0</Version>
 <ProviderName>Juanelo Balmori</ProviderName>
<DefaultLocale>en-US</DefaultLocale>
<DisplayName DefaultValue="Code FLow Word.js" />
<Description DefaultValue="Code Flow Sample!"/>

<Capabilities>
   <Capability Name="Document" />
 </Capabilities>
<DefaultSettings>
<SourceLocation DefaultValue="\\*name of your share*\index.html" />
</DefaultSettings>
<Permissions>ReadWriteDocument</Permissions>
</OfficeApp>

90400971-e367-4e1b-b9bf-fc2163635c37
1.0.0.0
胡安洛·巴尔莫里
恩美
读写文件
请注意,您需要为基于文件共享的目录受信任位置创建共享

如果所有这些都到位,我将获得预期的功能。如果我更改HTML文件的内容,则在F5任务窗格时会反映出来

请注意,您可能必须获得一个栏才能运行本地html页面,只要确保在任务窗格中允许,您就可以了


谢谢

我也有同样的问题。使用协议https可能会有所帮助


第一次加载时,http或https工作正常。如果你从其他网站被召回,你必须使用https。

我也有同样的问题。使用协议https可能会有所帮助


第一次加载时,http或https工作正常。如果您从其他网站被召回,您必须使用https。

您可以共享Word版本+内部版本号吗?您能确认这是Word 2016 for Windows吗?请张贴您的密码。您尝试过的任何参考资料或来源都会很有帮助。您可以共享Word版本+内部版本号吗?您能确认这是Word 2016 for Windows吗?请邮寄