進口我寫我在哪裏使用Office 365庫來訪問它通過全局對象辦公室通過URL在HTML
我已經寫JavaScript應用暴露在我的應用Outlook電子郵件上下文中的嵌入式應用程序訪問JavaScript對象在我包含在HTML頁面腳本的URL是這樣的:
<script type="text/javascript" src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js"></script>
我在ES6訪問上下文JavaScript函數像下面後:
Office.initialize = function (reason) {
$(document).ready(function() {
Office.context.mailbox.addHandlerAsync(Office.EventType.ItemChanged, callbackfunction);
});
};
我想在scala JS中做同樣的事情。
對於包括Office js庫在html中的方式如上。
試圖訪問Office對象等之後:
@js.native
@JSGlobal
object Office extends js.Any {
def initialize(f: String => Unit):js.Any = js.native
}
當我把這稱爲Office對象,它拋出錯誤。
def callback = (reason:String) => {
println(s"reason called in callback function => $reason")
}
Office.initialize(callback)
如何實例化並訪問scala JS中的office對象?
錯誤:
VM3981 playground-fastopt-bundle.js:4078 Uncaught TypeError: $g.Office.initialize is not a function
at HTMLDocument.<anonymous> (VM3981 playground-fastopt-bundle.js:4078)
at mightThrow (VM4209 playground-fastopt-bundle.js:25770)
at process (VM4209 playground-fastopt-bundle.js:25838)
初始化是在Office對象可用。我們必須在運行時加載函數。 錯誤消息:
在Office.initialize函數中添加您的初始化代碼。
要點代碼: https://gist.github.com/rajeevprasanna/8d4f193bc328f2c2d48e113960fb25a6
究竟是什麼錯誤引發的?此外,你說你「想在Scala.js中做同樣的事情」,但Scala.js代碼片段可能*調用*'initialize',而JS代碼片段*定義*'initialize'。你想要做的是哪一個?如果你想調用它,它在哪裏定義? – sjrd
我想調用初始化函數來初始化辦公室上下文對象,以訪問office對象上可用的字段。 – Rajeev