1

我想使用這個功能 https://msdn.microsoft.com/en-us/library/office/jj954403.aspx 從英國網址(我不能只是簡單地將en改爲fr,反之亦然)。如何在Sharepoint 2013客戶端對象模型中使用javascript getPeerUrl()函數?

但是我遇到了麻煩的功能。它似乎給我0而不是實際的網址。

這是我的代碼

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

相關問題