2011-02-10 44 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. 更改其他站点使用的入口门,以便它使用正确的域:端口。我不完全了解你的情况,或者你的设置。但希望这对你来说足够合适,以适应你的需求。
相关问题