sharepoint面包屑跟踪编辑即时

时间:2010-12-20 15:56:36

标签: javascript sharepoint

我现在一直在寻找几个小时,并且发现了一些声称可以做我想要的代码但是却没有。

我目前正尝试在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

1 个答案:

答案 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元素会按预期更改,那么它就是放置。否则,它取决于您获得的警报。让我知道结果,我可以帮助您纠正问题。