我现在一直在寻找几个小时,并且发现了一些声称可以做我想要的代码但是却没有。
我目前正尝试在sharepoint的痕迹导航路径中删除页面名称末尾的Pages和.aspx。目前它看起来像.... mysite> myarea>页面> mypage.aspx
我尝试更改SiteMapProvider,这会删除页面链接以及当前页面。它看起来像.. mysite> myarea。
我想拥有 mysite> myarea> mypage 我试过使用这段代码...我没有声称拥有或开发此代码。
var breadCrumbs = document.getElementById('ctl00_PlaceHolderTitleBreadcrumb_ContentMap')
if (breadCrumbs != null) {
if (breadCrumbs.childNodes.length >= 3) {
if (breadCrumbs.childNodes[2].innerHTML.indexOf('Pages') > 0) {
breadCrumbs.childNodes[1].innerHTML = "";
breadCrumbs.childNodes[2].innerHTML = "";
}
}
}
我放了一些document.writes来查看代码到达的位置,而breadCrums变量似乎是null,因此代码永远不会到达多汁的部分:P
任何想法提示都会非常感激
Truez
答案 0 :(得分:0)
我已在SharePoint网站上运行您的代码,并且能够正确获取breadCrumbs元素。您是否已验证这是您的面包屑对象的正确ID。您使用的ID是默认ID,但您应该检查。只需在页面上查看源代码并快速执行 Ctrl - F 并搜索“ Breadcrumb ”。
如果只是放置问题,请执行以下操作:在使用IE的目标SharePoint页面上,打开Web Developer工具(工具> 开发人员工具 )。切换到脚本标签,然后按脚本窗格底部的多线模式按钮。粘贴此代码:
var breadCrumbs = document.getElementById('ctl00_PlaceHolderTitleBreadcrumb_ContentMap')
if (breadCrumbs != null) {
if (breadCrumbs.childNodes.length >= 3) {
if (breadCrumbs.childNodes[2].innerHTML.indexOf('Pages') > 0) {
breadCrumbs.childNodes[1].innerHTML = "";
breadCrumbs.childNodes[2].innerHTML = "";
} else {
alert('Pages node NOT found!');
}
} else {
alert('breadCrumbs only has ' + breadCrumbs.childNodes.length + ' children!');
}
} else {
alert('breadCrumbs NOT found!');
}
然后按运行脚本按钮。此代码只是您的代码,添加了一些警报,以帮助您查看是否/在哪里失败。如果您没有收到任何警报,并且breadcrumbs元素会按预期更改,那么它就是放置。否则,它取决于您获得的警报。让我知道结果,我可以帮助您纠正问题。