如何在Sharepoint 2013客户端对象模型中使用javascript getPeerUrl()函数



我想使用这个函数https://msdn.microsoft.com/en-us/library/office/jj954403.aspx从英语url中获取法语url(我不能简单地将en改为fr,反之亦然(。

但我的功能有问题。它似乎给了我0,而不是实际的url。

这是我的代码

function VariationHandler2() {

    var ctx = SP.ClientContext.get_current();
    var site = ctx.get_site();
    var rootWeb = site.get_rootWeb();
    var webProperties = rootWeb.get_allProperties();
    ctx.load(site);
    ctx.load(rootWeb);
    ctx.load(webProperties);
    ctx.executeQueryAsync(
        function() {
            var varLabelsListId = webProperties.get_item('_VarLabelsListId');
            var labelsList = rootWeb.get_lists().getById(varLabelsListId);
            var labelItems = labelsList.getItems(SP.CamlQuery.createAllItemsQuery());
            ctx.load(labelItems);
            ctx.executeQueryAsync(
                function() {
                    var url = rootWeb.get_serverRelativeUrl();
                    var object = SP.Publishing.Variations.getPeerUrl(ctx, "/en/Pages/default.aspx", "fr");
                    alert(object);
                    alert(object.get_value());
                    alert(JSON.stringify(object));
                },
                function() {
                }
            );
        },
        function() {
        }
    );  
}

但我没有得到任何有用的结果。有人知道如何让它发挥作用吗?

感谢

我在一个有变体的网站的发布页面上向内容编辑器添加了以下代码,它成功了:

<script src="/_layouts/15/sp.publishing.js" type="text/javascript"></script> 
<script type="text/javascript">
$(document).ready(function() {
    ExecuteOrDelayUntilScriptLoaded(VariationHandler, "sp.js"); 
});
function VariationHandler() {
    ExecuteOrDelayUntilScriptLoaded(VariationHandler2, "SP.publishing.js"); 
}

function VariationHandler2() {
        var ctx = SP.ClientContext.get_current();
        var object = SP.Publishing.Variations.getPeerUrl(ctx, "/en/Pages/default.aspx", "fr");
        ctx.executeQueryAsync(
            function() {
                alert(object.get_value());
            }
        );  
    }
</script>

相关内容

  • 没有找到相关文章

最新更新