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都失敗了。 –