如果我們在Office客戶端以外加載引用office.js
的網頁,我們將收到警告:Office.js is loaded outside of Office client
。檢查Office.js是否在Office客戶端以外加載
此信息有用。
有誰知道是否有一個API來檢查我的代碼裏面?
編輯1:
我解釋一下我的情況,爲什麼我問這個問題。我正在製作一個可以在瀏覽器中作爲網頁或在Office中作爲加載項加載的angularjs應用程序。我意識到我們不應該一起做<body ng-app="myApp">
和angular.bootstrap(document, ['myApp'])
,否則控制器將執行兩次。所以我決定不寫<body ng-app="myApp">
並且在兩種情況下總是使用angular.bootstrap
(即,網頁&加載項)。
因此,對於一個網頁,我可以這樣寫:
$(document).ready(function() {
angular.bootstrap(document, ['myApp'])
})
app = angular.module('myApp', ['ui.router', 'ui.bootstrap'])
...
因此,對於一個網頁,我需要寫angular.bootstrap
內Office.initialize
,並用的情況下,分享其他代碼加載項:
Office.initialize = function (reason) {
$(document).ready(function() {
angular.bootstrap(document, ['myApp'])
});
}
app = angular.module('myApp', ['ui.router', 'ui.bootstrap'])
// share the same code
但是,如果我將這兩種情況寫在一起,如下所示,它適用於網頁,,而我給Error: ng:btstrpd App Already Bootstrapped with this Element加載項。
$(document).ready(function() {
angular.bootstrap(document, ['myApp'])
console.log("bootstrapped outside Office.initialize")
})
Office.initialize = function (reason) {
$(document).ready(function() {
angular.bootstrap(document, ['myApp'])
console.log("bootstrapped inside Office.initialize")
})
}
app = angular.module('myApp', ['ui.router', 'ui.bootstrap']).
如果我設置一個標誌,控制檯將顯示bootstrapped outside Office.initialize
其次isBootstrapped
,然後運行代碼將顯示Office.context
或Office.context.document
未定義:
var isBootstrapped = false;
$(document).ready(function() {
angular.bootstrap(document, ['myApp'])
isBootstrapped = true
console.log("bootstrapped outside Office.initialize")
})
Office.initialize = function (reason) {
$(document).ready(function() {
if (isBootstrapped) console.log("isBootstrapped")
else {
angular.bootstrap(document, ['myApp'])
console.log("bootstrapped inside Office.initialize")
}
})
}
app = angular.module('myApp', ['ui.router', 'ui.bootstrap'])
所以我真的需要一個有效的方式檢查Office.js是否被加載到Office客戶端之外(即,它是否是網頁或加載項),以決定應該執行哪一塊angular.bootstrap
。
我剛剛[提出問題](https://github.com/OfficeDev/office-js/issues/5),但顯然他們無法快速創建API,因此我們將不勝感激... – SoftTimur
This功能(在外接程序之外使用Office.js)聽起來非常有前途,但我無法想象它是如何工作的。它如何連接到Office文件?應用程序如何使用Office.js?我找不到任何文檔。 –
目標不是在加載項外使用'Office.js'。只是因爲這個應用程序同時服務於一個網站和一個Office加載項,所以在兩種情況下加載'Office.js'都很簡單。但是我們確實需要檢查代碼是否被加載爲網站或加載項。 – SoftTimur