1

Я хочу использовать эту функцию https://msdn.microsoft.com/en-us/library/office/jj954403.aspx , чтобы получить французский url с английского url (я не могу просто просто изменить en на fr и наоборот).Как использовать функцию javascript getPeerUrl() в клиентской объектной модели Sharepoint 2013?

Но у меня возникли проблемы с функцией. Кажется, я даю 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() { 
     } 
    ); 
} 

, но я не получаю никаких полезных результатов. Кто-нибудь знает, как заставить его работать?

Благодаря

ответ

2

Я добавил следующий код в редакторе содержимого на издательской странице сайта с изменениями, и она работала:

<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> 
+0

да, я получил решение от моего поста здесь HTTP://sharepoint.stackexchange.com/questions/148078/how-to-use-the-csom-sp-publishing-variations-getpeerurl-method#148080 – omega