在iFrame中提取Sharepoint 2013维基页面HTML源/显示没有主布局的维基页面?

时间:2014-10-22 10:22:12

标签: sharepoint-2013

我想要实现的是找到一种在浮动iFrame中显示维基页面内容的方法(当然还有造型),这是我为员工开发的工具。现在我使用的工具是使用jQuery对话框来显示特定的文档/ pdf,为了兼容性和可用性目的,我真的想升级它,所以它使用维基页面而不是文档/ PDF。我面临的问题是没有真正直接链接到Sharepoint维基页面的内容,而是唯一可用的直接链接是页面所有链接以及所有导航菜单,选项面板,用户面板等。我想避免使用javascrip来剥离远离这些元素。相反,我只是想弄清楚sharepoint 2013是否有一些更优雅的方式来提供内容,例如:Web服务或javascript SP API。

到目前为止我的想法:

REST Url要回馈内容吗?我知道它确实适用于列表和库但我在REST API中找不到任何关于wiki页面内容的内容 SP.js?也找不到任何相关的东西 无论如何,我可能会忽略一些事情,或者可能没有足够的搜索。但是,任何帮助都非常受欢迎。如果您不了解具体的解决方案,我会很高兴提出好的建议:)

如果没有任何开箱即用,我将不得不进入我的jQuery解决方案的备份计划,以获取页面并删除所有不必要的内容并保持样式。

2 个答案:

答案 0 :(得分:1)

我相信您使用REST API走在正确的轨道上,在企业Wiki页面中,内容存储在PublishingPageContent属性中。

以下示例演示了如何检索企业Wiki页面内容:

var getWikiPageContent =  function (webUrl,itemId,result) {
    var listTitle = "Pages";
    var url = webUrl + "/_api/web/lists/GetByTitle('" + listTitle + "')/items(" + itemId + ")/PublishingPageContent";
    $.getJSON(url,function( data ) {
        result(data.value); 
    });
}

<强>用法

getWikiPageContent('https://contoso.sharepoint.com/',1,function(pageContent){
   console.log(pageContent); 
});

答案 1 :(得分:0)

对于那些喜欢有不止一个不同例子的人来说,还有一些东西:

 var inner_content;
var page_title = "home";

$.ajax({
        url: "https://mysharepoint.sharepoint.com/MyEnterpriseWikiSite/_api/web/Lists/getbytitle('Pages')/items?$filter=Title eq '" + page_title +"'",
        type: "GET",
        headers: {
            "ACCEPT": "application/json;odata=verbose"
        },
        success: function (data) {

            if (data.d.results[0]) {
                inner_content = data.d.results[0].PublishingPageContent;
            }

        },
       error: function(){ //Show Error here }
   });

这就是我的工作。

此示例按标题获取企业Wiki页面的内部内容(确保您没有使用页面的名称,尽管标题和名称可以赋予相同的字符串值,它们是sharepoint 2013中的不同字段)< / p>