2
我正在使用Angular处理Outlook加载项。我在Outlook for Windows中收到一个错误信息,指出组件在加载索引页后未加载。使用Chrome和Firefox的Outlook Web App不会发生这种情况。Office.js尚未完全加载:Outlook Angular插件
错误消息:
SCRIPT5022: Office.js has not been fully loaded yet. Please try again
later or make sure to add your initialization code on the Office.initialize function.
polyfills.bundle.js (2741,25)
这是我index.ts
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
import * as $ from 'jquery';
declare let Office:any;
function launch() {
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule)
.then((success: any) => {
console.log('SampleAddin: bootstrap success', success);
})
.catch((error: any) => {
console.log('SampleAddin: bootstrap error', error);
});
}
Office.initialize = reason => {
console.log('Office intialize.....');
$(document).ready(function() {
if (environment.production) {
enableProdMode();
}
launch();
});
}
需要注意的是,使用Outlook for Mac,它不使用IE11,而是使用自定义的WebKit实现。这就是说,这很有趣。我不确定我是否明白为什么你需要一个垫片才能让Office.initialize()发射。我非常好奇,什么组件打破了这个垫片固定的东西。 –
是的,我提到IE 11的工作,因为它以前没有工作,并在windows.Office.initialize()火灾发生在polyfills.bundle.js。我认为垫片用于提高浏览器的竞争力。 (https://angular.io/guide/browser-support) –
这是正确的,垫片和polyfill用于跨浏览器兼容性。然而,这里奇怪的是,你没有得到任何其他错误。通常我会希望看到额外的错误,指出初始化没有被调用的根本原因。同样奇怪的是,考虑到浏览器引擎的不同,Mac和Windows都失败了。 –