1

(* 我清理了初始线程 *)

我想将 UserVoice 小部件添加到一个 Excel 加载项。我制作了以下示例代码:

<!DOCTYPE html>
<html>
  <head>
    <script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
    <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.min.css">
    <link rel="stylesheet" href="https://appsforoffice.microsoft.com/fabric/1.0/fabric.components.min.css">
  </head>
  <body>
    <div id="contact_us">Contact us</div>
  </body>
  <script>
    // Include the UserVoice JavaScript SDK (only needed once on a page)
    UserVoice=window.UserVoice||[];(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/KIXLyRfZDu6MdnaaVtnlSw.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})();

    UserVoice.push(['addTrigger', '#contact_us', {}]);
  </script>
  </body>
</html>

它在JSBin和下运行良好Excel Online,点击Contact us显示消息窗口。但是,在Excel 2016 for Windows加载几秒钟后(如预期的那样),单击Contact us不会打开这样的窗口。

在此处输入图像描述

不知道是不是有什么特别需要我们设置的,Home.html或者插件的manifest文件,或者Excel for Windows的设置。我也试图改变窗口应该弹出的位置(但仍然不能工作)......有人可以帮忙吗?

编辑 1 我测试了 Michael Saunders 的代码,它在 Excel Online 下工作,但在 Excel for Windows 中仍然不能工作。以下是截图。请注意,点击 后Contact us,出现了三角形符号(红色)(在我的初始示例中,它具有相同的现象。如果我们只是单击任务窗格的空白区域,它也具有相同的现象。)

也许该框已显示,但不在我们可以看到的任务窗格区域中?

在此处输入图像描述

4

2 回答 2

1

在加载速度方面,您可以动态加载 UserVoice,即使用jQuery.getScript(...)吗?

对于#2,您期待什么?

于 2016-07-21T00:42:12.497 回答
0

这是一个完整的工作页面:

<!DOCTYPE html>
<html>
<head>
    <title>UserVoice test</title>
    <script src="https://appsforoffice.microsoft.com/lib/1.1/hosted/Office.js" type="text/javascript"></script>
</head>
<body>
    <div id="contact_us">Contact us</div>
</body>
<script>
    UserVoice=window.UserVoice||[];(function(){var uv=document.createElement('script');uv.type='text/javascript';uv.async=true;uv.src='//widget.uservoice.com/KIXLyRfZDu6MdnaaVtnlSw.js';var s=document.getElementsByTagName('script')[0];s.parentNode.insertBefore(uv,s)})();
    UserVoice.push(['set', {
        width:'300px',
        post_suggestion_enabled:true
    }]);
    UserVoice.push(['identify', {}]);
    UserVoice.push(['addTrigger', '#contact_us', { mode: 'contact',menu_enabled:true, }]);
</script>
</html>

我改变的一些事情包括:

  • #contact_us将元素更改为 div 而不是链接。
  • 删除了您的额外标签
  • addTrigger在调用中添加了可选参数
  • 添加identifyset声明

另外,请确保您的环境处于良好状态:

  • 清除浏览器缓存以确保在调试期间不存在旧代码:打开 Internet Explorer(不是 Edge)并选择安全 > 删除浏览历史记录 > 选择所有框 > 删除 > 关闭所有 IE 窗口和所有 Office 窗口。
  • 在线托管代码
于 2016-07-21T22:48:35.297 回答