我们正在构建一个Outlook插件,我们正在尝试使用以下步骤执行身份验证流程:
Office.context.ui.displayDialogAsync()打开一个带有OAuth登录页面对话框的对话框(此页面的域名也会添加到我们清单的"AppDomains"标签中,此外还添加了我们的插件).Office.context.ui.messageParent()并将OAuth令牌发回给插件.以下是重定向页面的HTML内容.<script type="text/javascript" src="<URL to the server we host Office JS>/office.js"></script>
<script type="text/javascript">
Office.initialize = function () {
Office.context.ui.messageParent(window.location.hash);
};
</script>
Run Code Online (Sandbox Code Playgroud)
这在Outlook 2016和Chrome上运行良好.但是,它有时在IE11/Edge上不起作用,在第4步中断.重定向页面无法执行Office.context.ui.messageParent().我们看到发生这种情况时,在开发人员工具中有一个"警告office.js在办公室客户端外部加载"并且Office.context.ui似乎为空.
我们还发现,关闭IE - > Internet选项 - >安全 - >"启用保护模式"解决了这个问题.对于Edge,根据此页面,无法关闭该模式.(我们确实看到它在某些IE/Edge实例中工作,即使启用此模式).
根据这个文档,看起来问题是"保护模式"不允许office.js加载在办公室客户端之外的重定向页面中.但是,重定向页面与我们的插件属于同一个域.
我们希望对此有所了解以及如何解决此问题.谢谢!
我正在将 Office Javascript API 用于我的 Outlook 加载项。我正在运行 Outlook-web-16.01 ( https://outlook.live.com/owa/)。
我可以通过调用UI.displayDialogAsync. 但是调用UI.messageParent不会导致在DialogMessageReceived父页面上被触发。我在同一个域上同时运行父级和对话框。
然而,手动关闭对话框会DialogEventReceived在父级上触发并带有12006.
我还注意到对话框在加载后立即在 JS 控制台上出现此错误,但不确定它是否相关:
无法执行
'postMessage'的'DOMWindow':提供的目标来源('https://outlook.live.com')不匹配收件人窗口的原点('MyOrigin')。
我正在使用GitHub 中的OfficeDev 示例。
我在从这里复制的父页面上启动对话框的代码,
function dialogCallback(asyncResult) {
if (asyncResult.status == "failed") {
// In addition to general system errors, there are 3 specific errors for
// displayDialogAsync that you can handle individually.
switch (asyncResult.error.code) {
case 12004:
console.log("Domain …Run Code Online (Sandbox Code Playgroud) 我正在阅读本文在MDN上的“定位技术” 。它谈到“可以将绝对定位元素固定到相对于其最近定位的祖先元素的位置”。
我对“已定位祖先”的理解是具有除静态以外的任何位置属性的祖先。但是我需要专家的意见来验证我的想法。
我是 arm-linuxgnueabihf-g++ 的新手。我正在使用 Ubuntu 14.04 并安装了 arm-linuxgnueabihf-g++-4.7 的 amd64 机器上工作。我想针对 32 位 arm 架构交叉编译我的应用程序。
我运行命令:
arm-linux-gnueabihf-g++ -m32 hello.cpp -o hello.
Run Code Online (Sandbox Code Playgroud)
但它给了我错误:arm-linux-gnueabihf-g++:错误:
unrecognized command line option ‘-m32’.
Run Code Online (Sandbox Code Playgroud)
互联网上似乎很少有关于 arm-linux-gnueabihf-g++ 的文档。
任何人都可以给我一些帮助吗?
我incompatible type: cannot infer type-variable(s) E (actual and formal argument lists differ in length)从以下代码的第二个语句中得到错误,
Deque<TreeNode>[] stacks = new Deque[2];
Arrays.set(stacks, LinkedList::new);
Run Code Online (Sandbox Code Playgroud)
但是,用 ArrayDeque 替换 LinkedList 修复了错误,
Arrays.set(stacks, ArrayDeque::new);
Run Code Online (Sandbox Code Playgroud)
无论LinkedList和ArrayDeque实现Deque接口。我很困惑为什么它适用于ArrayDeque但不适用于LinkedList?
以下是我的问题的简单代码,
void overloaded (int&& x) {
cout << "[rvalue]";
}
template <class T>
void fn (T&& x) {
overloaded(x);
}
int main() {
fn(0);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我遇到了编译错误
无法将'
int'左值' 绑定到'int&&'Run Code Online (Sandbox Code Playgroud)overloaded(x);
我在这里很困惑,x作为右值引用传入fn().但为什么抱怨的overload()电话是一个左值?fn()x