在 Excel for Windows 的加载项中嵌入 UserVoice 小部件
Embed a UserVoice widget in an add-in in Excel for Windows
(* 我清理初始线程 *)
我想将 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
显示消息 window。但是,在Excel 2016 for Windows
下,加载几秒后(符合预期),点击Contact us
并没有打开这样一个window.
不知道在Home.html
或者插件的manifest文件里面是不是有什么特别需要设置的,或者Excel对[=40=的设置].我也在尝试更改 window 应该弹出的位置(但仍然无法正常工作)...有人可以帮忙吗?
编辑 1
我测试了 Michael Saunders 的代码,它在 Excel Online 下工作,但在 Excel for Windows 下仍然不起作用。以下是截图。注意,点击Contact us
后,出现了三角符号(红色)(在我最初的例子中,它有同样的现象。如果我们只点击任务面板的空白区域,它有同样的现象现象也是如此。)
也许该框已经显示,但不在我们可以看到的任务窗格区域中?
就加载速度而言,您能否动态加载 UserVoice,即使用 jQuery.getScript(...)?
对于#2,您期待什么?
这是一个完整的工作页面:
<!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 而不是 link。
- 删除了您的额外标签
- 在
addTrigger
调用中添加了可选参数
- 添加了
identify
和 set
语句
另外,请确保您的环境处于良好状态:
- 清除浏览器缓存以确保调试期间不存在旧代码:打开 Internet Explorer(不是 Edge)和 select 安全 > 删除浏览历史记录 > Select 所有框 > 删除 >关闭所有 IE windows 和所有 Office windows.
- 在线托管代码
(* 我清理初始线程 *)
我想将 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
显示消息 window。但是,在Excel 2016 for Windows
下,加载几秒后(符合预期),点击Contact us
并没有打开这样一个window.
不知道在Home.html
或者插件的manifest文件里面是不是有什么特别需要设置的,或者Excel对[=40=的设置].我也在尝试更改 window 应该弹出的位置(但仍然无法正常工作)...有人可以帮忙吗?
编辑 1
我测试了 Michael Saunders 的代码,它在 Excel Online 下工作,但在 Excel for Windows 下仍然不起作用。以下是截图。注意,点击Contact us
后,出现了三角符号(红色)(在我最初的例子中,它有同样的现象。如果我们只点击任务面板的空白区域,它有同样的现象现象也是如此。)
也许该框已经显示,但不在我们可以看到的任务窗格区域中?
就加载速度而言,您能否动态加载 UserVoice,即使用 jQuery.getScript(...)?
对于#2,您期待什么?
这是一个完整的工作页面:
<!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 而不是 link。 - 删除了您的额外标签
- 在
addTrigger
调用中添加了可选参数 - 添加了
identify
和set
语句
另外,请确保您的环境处于良好状态:
- 清除浏览器缓存以确保调试期间不存在旧代码:打开 Internet Explorer(不是 Edge)和 select 安全 > 删除浏览历史记录 > Select 所有框 > 删除 >关闭所有 IE windows 和所有 Office windows.
- 在线托管代码