如何获取Microsoft Word文档的HTML内容?

时间:2018-12-05 08:51:21

标签: jquery html ms-word office-js word-addins

我使用以下代码来获取HTML的{​​{1}}内容:

Microsoft Word Document

在上面的代码Word.run(function (context) { var body = context.document.body; context.load(body, 'html'); console.log(body.getHtml()); return context.sync().then(function () { console.log("Content is fetched:", body.getHtml().value); }); }) .catch(function(error){ // Log additional information, if applicable: if (error instanceof OfficeExtension.Error) { console.log(error.debugInfo); } }); 中将打印一个对象,该对象中包含我期望的内容。要检索该数据,我使用body.getHtml()来获取实际的.value内容,但是它给出了以下错误:

  

字数据获取RichApi时出错。错误:“   结果对象尚未加载。读取值之前   属性,请在关联的请求上下文上调用“ context.sync()”。

我已经发布了HTML,但是出现了相同的错误。这里有帮助吗?

1 个答案:

答案 0 :(得分:3)

这里的根本问题是,您可以通过方法调用来获取HTML,您不会像这样加载其隐式的东西,但是您要确保在获取值之前进行同步:)

这是它的工作方式,请检查以下示例:

function sps_add_custom_box(){
add_meta_box(
    'sps_genres_box_id',
    'Genres',
    'sps_custom_box_genre_html',
    'series');}

function sps_custom_box_genre_html($post){
    $value_action = get_post_meta($post->ID, '_genres_series', true);
    print("<input type='checkbox' name='Genres[]' id='Action' value='".$value_action."'></input>");
    print("<label for='Action'>Action </label>");}

add_action('add_meta_boxes', 'sps_add_custom_box');

function get_all_of_post_type( $type_name = ''){
$items = array();
if( !empty($type_name)){
    $args = array(
        'post_type' => "{$type_name}",
        'posts_per_page' => -1,
        'order' => 'ASC',
        'orderby' => 'title');
    $results = get_posts( $args );}
return $results;}