【问题标题】:Cant edit worddocument after opening the addin打开插件后无法编辑word文档
【发布时间】:2017-05-24 11:50:10
【问题描述】:

关于我之前的问题“Word 插件不适用于在线文字”,我现在有一个插件,我可以在其中使用 ooxml 获取页眉和页脚,并将它们添加到初始化过程中 Office.initialize = 函数(原因)。

当我打开插件时,会添加页眉和页脚。然后,当我尝试在主体中输入任何内容时,只能在一行上输入。这只是在线Word上的一个问题。本地客户 - 没问题。

还应该提到,如果您从 OneDrive 打开现有模板,然后打开插件,则在文档中输入文本没有问题。

我想知道是否有其他人遇到过这个问题或稍微类似的问题,您提出了什么解决方案?代码请看之前的问题:“Word addin doesn't work on word online”

【问题讨论】:

    标签: javascript office365 office-js


    【解决方案1】:

    在 Word.run 之前添加“返回”

    function addHeader() {
        return Word.run(function (context) {
    
            var sections = context.document.sections;
            context.load(sections, 'body/style');
    
            return context.sync().then(function () {
    
                var header = sections.items[0].getHeader("primary");
                var templateHeader = getHeaderFooter('/xml/simrisHeader.xml');
                header.insertOoxml(templateHeader, Word.InsertLocation.replace);
    
                return context.sync().then(function () {
                    console.log("Added a header to the first section.");
                });
            });
        })
        .catch(function (error) {
    
            console.log('Error: ' + JSON.stringify(error));
            if (error instanceof OfficeExtension.Error) {
                console.log('Debug info: ' + JSON.stringify(error.debugInfo));
            }
        });
    }
    

    使用下面的样式调用addFooter和addHeader:

    addFooter().then(function() {
        addHeader();
    }; 
    

    【讨论】:

    • 是的!谢谢佳佳!不得不做一点改变。 addHeader().then(function () { addFooter(); })
    【解决方案2】:

    你的意思是AddFooter和AddHeader可以通过在打开插件的initialize方法中调用InsertOoxml API来成功。但是打开插件后无法编辑文档主体。

    我认为主体中可能存在不支持的内容,就像类似问题“Word addin doesn't work on word online”的原因。

    您可以为我提供文档,然后我可以验证根本原因。

    【讨论】:

    • 好吧,它们加载没有任何问题。您打开一个新文档。此时您可以编辑正文中的文本。然后,当您从功能区打开插件时,如果您不按 Enter,您实际上可以为多行编写文本。当您点击输入时,文本消失。当您在输入文本区域之外单击时,它会再次出现。您实际上可以再次覆盖现有文本,但文本现在缩小了一个字体大小 =)!穿!在打开插件时,没有加载任何文档。从控制台:
    • HTML1527:需要 DOCTYPE。考虑添加一个真实的 HTML5 文档类型:“”。和 HTML1405:无效字符:NULL (U + 0000)。不能使用零字符。
    • 我已经验证并找到了您问题的根本原因。就是你使用我们API的方式不对。
    • 你应该修改你的方法,比如addHeader和addFooter。在 word.run 之前添加“return”。
    • 使用下面的样式调用addHeader和addFooter: addFooter().then(function() { addHeader(); };
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多