繁体   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