JavaScript API для Office Функция getFileAsync не вызывает обратный вызов
Я разработал очень простую надстройку TaskPane, которую я хотел бы протестировать в Excel Online. Я использовал Visual Studio 2015 и Javascript Api для Office и запустил новый проект Office/Sharepoint -> Затем я выбрал опцию "Панель задач". Единственное, что я изменил в образце, который они создают, - это Home.js:
/// <reference path="../App.js" />
(function () {
"use strict";
// The initialize function must be run each time a new page is loaded
Office.initialize = function (reason) {
$(document).ready(function () {
app.initialize();
$('#get-crazy').click(getCrazy);
});
};
// Reads data from current document selection and displays a notification
function getCrazy(){
Office.context.document.getFileAsync(Office.FileType.Compressed, {sliceSize: 2097152},
function (result) {
if (result.status === Office.AsyncResultStatus.Succeeded) {
console.log("I'm here :D ");
} else {
app.showNotification('Error:', result.error.message);
}
}
);
}
})();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
<title></title>
<script src="../../Scripts/jquery-1.9.1.js" type="text/javascript"></script>
<link href="../../Content/Office.css" rel="stylesheet" type="text/css" />
<script src="https://appsforoffice.microsoft.com/lib/1/hosted/office.js" type="text/javascript"></script>
<!-- To enable offline debugging using a local reference to Office.js, use: -->
<!-- <script src="../../Scripts/Office/MicrosoftAjax.js" type="text/javascript"></script> -->
<!-- <script src="../../Scripts/Office/1.1/office.js" type="text/javascript"></script> -->
<link href="../App.css" rel="stylesheet" type="text/css" />
<script src="../App.js" type="text/javascript"></script>
<link href="Home.css" rel="stylesheet" type="text/css" />
<script src="Home.js" type="text/javascript"></script>
</head>
<body>
<div id="content-header">
<div class="padding">
<h1>Welcome</h1>
</div>
</div>
<div id="content-main">
<div class="padding">
<button id="get-crazy"> SURPRISE! </button>
</div>
</div>
</body>
</html>
Я также изменил манифест, поэтому его startAction указывает на InternetExplorer, и я использую сайт SharePoint Developer, чтобы открыть этот Excel Online. Когда я запускаю код, я получаю следующие сообщения:
XML5619: Incorrect document syntax.
Line: 1, Column 1
SEC7111: HTTPS security is compromised by res://ieframe.dll/http_500.htm
SEC7111: HTTPS security is compromised by res://ieframe.dll/ErrorPageTemplate.css
SEC7111: HTTPS security is compromised by res://ieframe.dll/errorPageStrings.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/httpErrorPagesScripts.js
SEC7111: HTTPS security is compromised by res://ieframe.dll/info_48.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/bullet.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/down.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/down.png
SEC7111: HTTPS security is compromised by res://ieframe.dll/background_gradient.jpg
И когда я нажимаю кнопку, у меня есть только это: Agave.HostCall.IssueCall. И я знаю, что он "застрял" в функции getFileAsync. Не могли бы вы мне помочь?
2 ответа
Вы пытались использовать локальную копию Excel, а не Excel в Интернете, просто чтобы убедиться, что это проблема?
Вы должны использовать office.js версии 1.1, так как getFileAsync() только что поддерживается 1.1, поэтому вы должны заменить " https://appsforoffice.microsoft.com/lib/1/hosted/office.js" на " https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js".