我正在使用Angular 5处理Office Word加载项。我有一个奇怪的问题,点击任何路由链接每次点击都会将视口缩放级别缩小一小部分直到一切都非常小。我已将位置策略设置为哈希。
想知道是否有人经历过类似的事情。
更新:
我尝试使用以下加载项,并通过单击路由链接遇到相同的问题。 https://github.com/OfficeDev/Word-Add-in-Angular2-StyleChecker
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Office Add In</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<base href="/">
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/Office.js" type="text/javascript"></script>
</head>
<body>
<app-root>Loading...</app-root>
</body>
</html>
主要模板
<div class="root-navigation">
<div class="navigation-links">
<a routerLink="/tab1" [routerLinkActive]="['active']">
Tab 1
</a>
<a routerLink="/tab2" [routerLinkActive]="['active']">
Tab 2
</a>
</div>
</div>
<div class="root-viewport">
<router-outlet></router-outlet>
</div>
注意:此答案不包含问题的解决方案,因为作为评论发布时间太长。
TL; DR:看起来Word 2016 for Windows中存在一个错误,它会影响使用Angular的路由器的OfficeJS加载项的window.devicePixelRatio
。使用IE11或Chrome在Word Online上不会发生此错误。
版本号:
Windows 10: 版本1709(OS Build 16299.125)
Word 2016: 版本1801(Build 8911.2016点击运行)(Office Insider) WordApi 1.3
Internet Explorer 11: 版本11.125.16299.0 更新版本:11.0.49(KB4052978)
更长的版本:我也注意到了这一点,并认为它是Angular的路由器。通过记录window.devicePixelRatio
的值,我可以看到它的值随着每个路由器导航而稳步下降。奇怪,鉴于it's supposed to be read-only!
所以我花了一些时间creating a simple repro作为opening a ticket on their GitHub repo的准备。
但是,我无法通过Chrome和IE11上非常简单的示例重现问题。
所以,我将OfficeJS添加到示例in a separate branch并进行了一些测试。以下是我的发现:
在这种情况下,没有OfficeJS。我直接使用浏览器访问应用程序。
window.devicePixelRatio
在Chrome和IE11上的初始值是1
。此处,加载项由主机(Word Online或Word 2016 for Windows)加载,该主机在其自己的浏览器进程中运行。 Side-loading manifest info here。
在线Word
window.devicePixelRatio
的初始值是1
。window.devicePixelRatio
的初始值也是1
。Word 2016 for Windows
window.devicePixelRatio
在Word 2016中IE11的初始值是1
。所以,是的,你不是疯了。 :)也许OfficeJS团队的某个人可以帮忙解决这个问题?