- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个平均堆栈网站。最初,views/index.html
(有 <ui-view></ui-view>
)是所有页面的入口点。它使用 angular-ui-router
和 html5mode
.因此,https://localhost:3000/XXXX
在浏览器中将保持不变(而不是添加 #
)并根据路由器显示相应的内容。
然后,我希望服务器也提供 Office 加载项。我需要 views/addin.html
包含 office.js
和另一个路由器,这样站点就可以提供一组 url https://localhost:3000/addin/XXXX
, 我不介意它是 html5mode
或不(网址可以在某处包含 #
)。
所以这是routes/index.js
的对应:
router.get('/addin/*', function (req, res) {
console.log("router.get /addin/*");
res.sendfile('./views/addin.html')
});
router.get('*', function(req, res) {
console.log("router.get *");
res.sendfile('./views/index.html');
});
这里是 views/addin.html
:
<html>
<head>
<title>F-addin</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.3.2/angular-ui-router.js"></script>
<!--<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>-->
<base href="/" />
</head>
<body ng-app="addinF">
addin content
<ui-view ng-cloak></ui-view>
</body>
<script>
var addinApp = angular.module('addinF', ['ui.router'])
addinApp.config(['$stateProvider', '$locationProvider', function ($stateProvider, $locationProvider) {
$stateProvider
.state('addinNew', {
url: '/addin/new',
template: "new page"
})
.state('addinHome', {
url: '/addin/home',
template: "home page"
})
$locationProvider.html5Mode(true);
}]);
</script>
</html>
当 office.js
评论如上,https://localhost:3000/addin/new
和 https://localhost:3000/addin/home
在浏览器中运行良好。然而,当office.js
未注释,有一个奇怪的行为:键入 https://localhost:3000/addin/new
在浏览器中将更改为 https://localhost:3000/#/addin/new
, 然后变回 https://localhost:3000/addin/new
.我们会看到 addin content new page
出现一次就消失。
与 office.js
未注释,如果我们使用 <SourceLocation DefaultValue="https://localhost:3000/addin/new"/>
加载 list 文件,我们还将在任务 Pane 中看到 addin content new page
出现一次然后消失,然后Add-in Error Something went wrong and we couldn't start this add-in. Please try again later or contact your system administrator.
没有html5mode
在这里,.../addin/new
或 .../addin/home
在浏览器中只会显示 addin content
;加载项可以加载,只有 addin content
也是。
我的目标是制作一个指向 .../addin/new
的加载项或 .../addin/home
工作。 office.js
必须加载到某个地方。我不介意它是html5mode
(即 url 有 #
),但任何一种方式的行为都是奇怪的或不令人满意的。有谁知道如何修复它或有解决方法?
最佳答案
查看 office.js 文件的调试版本:
https://appsforoffice.microsoft.com/lib/1/hosted/office.debug.js
您会看到窗口的历史记录 replaceState 和 pushState 函数设置为 null:
window.history.replaceState = null;
window.history.pushState = null;
这禁用了操纵浏览器历史记录的能力,并且 Angular 似乎认为历史记录 API 不可用,因此 Angular 退回到主题标签导航。
在 office.js
缩小版中,您可以通过查找找到这两行:
window.history.replaceState=e;window.history.pushState=e;
您可以删除这两行代码以重新启用 html5mode,但我不确定 office.js 插件是否会继续正常工作。
关于javascript - 添加 office.js 在 url 中添加#,然后将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44857415/
我对 Office Scripts 和 Office Lab 感到困惑。 两者都可以在 Excel 中运行 javascript,但似乎无法在它们中共享代码。 对于 Office 脚本,一些代码如 f
如果我们加载一个引用 office.js 的网页在 Office 客户端之外,我们会收到警告:Office.js is loaded outside of Office client . 这些信息很有
我试图找到一种将 Outlook 插件发布到办公商店的方法。但我发现我们只能发布 Office 应用程序,而不能发布 Office 商店的加载项。因此我想知道 Office 应用程序和 Office
我想使用 Ooxml 以编程方式自定义“Heading1”和“Heading2”样式通过 office.js Visual Studio 代码中的库。我已经搜索过谷歌和许多文档,但仍然没有得到任何内容
我想使用 Microsoft.Office.Interop.Excel 从 XLS 文件中提取一些数据。我安装了 Visual Studio 2010 和 Office 开发人员工具。但是,我在 va
最近,Microsoft 推出了 Office 插件架构,该架构允许开发远程托管并在 Office 内的 IFrame 中运行的插件。我读了很多文章,试图了解这个架构是否是 VSTO 的替代品,或者它
我开发了一个将数据导入 Microsoft Excel 的应用程序。 我使用 VS2005 + .NET 2.0,并且我的计算机上安装了 Microsoft Office 2007 (Office 1
是否有推荐的方法(包、框架等)来设置 Office 加载项的自动化端到端测试。我对测试的所有搜索都导致侧加载应用程序和手动测试。 例如:https://dev.office.com/docs/add-
我们正在为 Excel 和 Word 开发 javascript Office 插件。我们的用户将使用 Office Desktop 和 Office Online。 当用户在加载项中创建新记录时,我
我在电子表格上有一个表格,我想删除所有现有数据。我使用下面的代码,除非表格已经是空的。 // Get the row count let rowCount = table.getRangeBetwee
所以我正在尝试开始开发 Office 365 加载项(以前的 Office 应用程序),我想知道 Office 在呈现您的应用程序时使用什么浏览器或浏览器引擎。我尝试使用 JavaScript 的 n
我正在寻找一些关于在 网上商店 上托管我们当前托管应用程序的更新版本的信息。 我的查询是,我们现有版本的应用程序说的 list 文件 版本。 1.0 托管在网上商店指向源位置(天蓝色 网站)说 mya
在我们的组织中,我们构建了一个 Office 加载项。现在我们想在我们的加载项中添加打印功能。谁能帮助我如何使用 Office javascript API 添加打印功能。 最佳答案 Office.J
我有兴趣了解有关 Microsoft Office Communicator 的更多信息IM 客户端,以及它如何确定您的存在(即您是在计算机旁还是不在)。任何人都可以向我指出解释这一点的教程或 API
问题: 我有两个电子表格,每个电子表格都有不同的用途,但包含一个特定的数据,这两个电子表格中的数据需要相同。这条数据(其中一列)在电子表格 A 中更新,但也需要在电子表格 B 中更新。 目标: 以某种
可在此处获得office.js的正式版本: https://appsforoffice.microsoft.com/lib/1/hosted/office.js 它在代码中包含以下几行: window
不久前我有了一个发现。只需按照以下步骤操作: 在 Office 2003 中创建一个 .doc/.xls/.ppt 文件。在其中保留一些测试数据并关闭该文件。现在重命名该文件以将其文件扩展名更改为随机
姓名:来自:file:///D:/Samples/TestUpdatedVersion/bin/Debug/TestUpdatedVersion.vsto 无法安装自定义,因为当前已安装另一个版本并且
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我对使用 Office 2007 在 2007 之前的二进制格式(.doc、.xls、.ppt)和新的 Office Open XML 格式(.docx、.xlsx、.pptx)之间进行转换很感兴趣
我是一名优秀的程序员,十分优秀!