2011-02-10 57 views
0

我目前正在開發一個jQuery功能我打算用來替換URL蓋茨在HREF更換域名 - >http://mydomain:20000使用JavaScript在SharePoint

正如你所知道的SharePoint使用用戶控件嵌入globalnavigation,當作爲渲染您可以在錨標記'href中找到「/Subsite/Folder/Page.aspx」HTML。

這裏我的問題是,我的同事設法爲客戶開發了一個跨站點導航,而且這個客戶也有一個使用這個跨站點導航的MySite,而MySites通常駐留在另一個入口上,在我的情況下門20000.

所以爲了讓用戶導航而沒有得到403錯誤只是因爲跨站點導航不能刪除:20000條目我想使用jquery腳本來刪除該條目。唯一的問題 - 不知道如何。

一個報廢的版本:

<script type="text/javascript"> 
    $(document).ready(function() { 
     var urlContain = new RegExp(':20000'); 
     $('#s4-topheader2 a').each(function() { 
      var href = this.getAttribute('href').replace(urlContain, ''); 
      $(this).attr('href', href); 
     }); 
    }); 
</script> 

它按預期工作,但不幸的是,它不會刪除:從域中20000,正如我前面提到的,錨似乎只包含「/子網站/ Folder/Page.aspx「。雖然當我將鼠標懸停在他們身上時,我可以在瀏覽器的左下角看到它包含域名,但當我在查看源時看不到。

解決此問題的想法和想法是高度讚賞。

回答

1

如果您的網址是"/Subsite/Folder/Page.aspx",那麼您的瀏覽器將在左下角顯示完整的地址(如您所說)。這是因爲URL "Subsite/Folder/Page.aspx"是相對於當前域的地址。

這意味着,如果該頁面是從

www.example.com訪問它會顯示www.example.com/Subsite/Folder/Page.aspx

www.example.com:8080 - > www.example.com:8080/Subsite/Folder/Page.aspx

www.example.com:2000 - > www.example.com:2000/Subsite/Folder/Page.aspx

由...聽起來你的JavaScript是無關緊要的,因爲在URL中沒有domain:port開始。

您的選項有:

  1. 添加域(無端口)連接到的URL。網上有很多關於如何獲取當前頁面的域名部分的例子。然後,您將使用當前javascript的修改版本將新域(使用http://)添加到每個URL的開頭。
  2. 更改其他站點使用的入口門,以便它使用正確的域:端口。我不完全瞭解你的情況,或者你的設置。但希望這對你來說足夠合適,以適應你的需求。
相關問題