簡體   English   中英

Word的文檔加載項內容

[英]Word Add-in content of document

我要從Word文檔中獲取數據並將其設置為我的JavaScript的全局用法。 但是我通過以下代碼得到這個錯誤

您無法將正文內容設置為全局變量

var bodyText;
getData();

function getData() {
    Word.run(function (context) {

        var body = context.document.body;

        context.load(body, 'text');

        return context.sync().then(function () {
            bodyText = body.text;
        });
    });

    console.log(bodyText);
}

console.log(bodyText);

您的第一個console.log是無法訪問的代碼,因為該方法在到達該行之前返回。 另一個問題是Word.run是異步的,並且在調用第二個console.log時尚未完成,因此第二個返回undefined。 以下代碼有效:

var bodyText;
getData();

function getData() {
    return Word.run(function (context) {
        var body = context.document.body;

        context.load(body, 'text');

        return context.sync()
            .then(function () {
                bodyText = body.text;
                console.log(bodyText); //Completes second and works
            });
    });
   // console.log(bodyText); // Unreachable code
}
console.log(bodyText); // Completes first and returns undefined

您可以通過將第二個console.log放入then鏈接到getData調用的then方法中來控制同步:

var bodyText;
getData().then(function () {
    console.log(bodyText); // Completes second and works
});

function getData() {
    return Word.run(function (context) {
        var body = context.document.body; 

        context.load(body, 'text');

        return context.sync()
            .then(function () {
                bodyText = body.text;
                console.log(bodyText); //Completes first and works
            });
    });
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM