Div namen opnemen in Breadcrumb

Status
Niet open voor verdere reacties.

chicksel

Gebruiker
Lid geworden
24 mei 2007
Berichten
9
Hallo

Hier nog even een andere vraag. Ik wil een breadcrumb opnemen in de website echter ik werk met div's dus de breadcrumb breidt niet uit als ik op een link klik. Is er iemand die weet of de div's kunnen worden meegenomen in de breadcrumb.

Dit is het script:

Code:
var crumbsep = " > ";
var precrumb = "<span class=\"crumb\">";
var postcrumb = "</span>";
var sectionsep = "/";
var rootpath = "/site"; // Use "/" for root of domain.
var rootname = "Home";

var ucfirst = 1; // if set to 1, makes "directory" default to "Directory"

var objurl = new Object;
objurl['topics'] = 'All Topics';

// Grab the page's url and break it up into directory pieces
var pageurl = (new String(document.location));
var protocol = pageurl.substring(0, pageurl.indexOf("//") + 2);
pageurl = pageurl.replace(protocol, ""); // remove protocol from pageurl
var rooturl = pageurl.substring(0, pageurl.indexOf(rootpath) + rootpath.length); // find rooturl
if (rooturl.charAt(rooturl.length - 1) == "/") //remove trailing slash
{
  rooturl = rooturl.substring(0, rooturl.length - 1);
}
pageurl = pageurl.replace(rooturl, ""); // remove rooturl fro pageurl
if (pageurl.charAt(0) == '/') // remove beginning slash
{
  pageurl = pageurl.substring(1, pageurl.length);
}

var page_ar = pageurl.split(sectionsep);
var currenturl = protocol + rooturl;
var allbread = precrumb + "<a href=\"" + currenturl + "\">" + rootname + "</a>" + postcrumb; // start with root

for (i=0; i < page_ar.length-1; i++)
{
  var displayname = "";
  currenturl += "/" + page_ar[i];
  if (objurl[page_ar[i]])
  {
    displayname = objurl[page_ar[i]];
  }
  else
  {
    if (ucfirst == 1)
    {
      displayname = page_ar[i].charAt(0).toUpperCase() + page_ar[i].substring(1);
    }
    else
    {
      displayname = page_ar[i];
    }
  }
  allbread += crumbsep + precrumb + "<a href=\"" + currenturl + "\">" + displayname + "</a>" + postcrumb;
}
document.write(allbread);
 
Je bedoelt dat je de inhoud van de div wilt meenemen of de divtags ook?

Greetz : Jer:cool:en.
 
Zeg maar wanneer op de link wordt geklikt die de div info opent moet in de breadcrumb komen te staan Home > Info

Enig idee hoe ik dat doe?
 
Oops, ik had het blijkbaar even niet begrepen. :o

Je zal best op de een of andere manier met een functie of zo een variabele moeten een string meegeven die de naam is die je wilt meegeven ls breadcrumb, maar dat zou ik ook eens moeten uitdokteren.
Eerst zal ik wel even je script goed moeten bestuderen om het te doorgronden, maar ik zal mij er wel mee bezig houden.

Greetz : Jer:cool:en.
 
Ik heb al heel wat zitten denken, maar er zijn nog teveel mogelijkheden om een goeie oplossing voor jou specifiek te vinden.
Wat ik graag nog zou willen weten is als je op een link klikt, wordt er een nieuwe pagina geladen, of verberg je de huidige div en wordt er een andere zichtbaar?

Greetz : Jer:cool:en.
 
Het is misschien wat laat, maar hier toch nog een oplossing :

Maak een extern javascript-bestand waarnaar je linkt in elke pagina die in het iframe laad.
In elk van die pagina's die in het iframe laden zet je in de body-tag een onload-event :

Code:
<body onload="makecrumbs();">

Je externe script-pagina bevat de volgende aangepaste code :

Code:
var crumbsep = " > ";
var precrumb = "<span class=\"crumb\">";
var postcrumb = "</span>";
var sectionsep = "/";
var rootpath = "/site"; // Use "/" for root of domain.
var rootname = "Home";

var ucfirst = 1; // if set to 1, makes "directory" default to "Directory"

var objurl = new Object;
objurl['topics'] = 'All Topics';

// Grab the page's url and break it up into directory pieces
function makecrumbs() {
var pageurl = (new String(top.document.mainFrame.location));
var protocol = pageurl.substring(0, pageurl.indexOf("//") + 2);
pageurl = pageurl.replace(protocol, ""); // remove protocol from pageurl
var rooturl = pageurl.substring(0, pageurl.indexOf(rootpath) + rootpath.length); // find rooturl
if (rooturl.charAt(rooturl.length - 1) == "/") //remove trailing slash
{
  rooturl = rooturl.substring(0, rooturl.length - 1);
}
pageurl = pageurl.replace(rooturl, ""); // remove rooturl fro pageurl
if (pageurl.charAt(0) == '/') // remove beginning slash
{
  pageurl = pageurl.substring(1, pageurl.length);
}

var page_ar = pageurl.split(sectionsep);
var currenturl = protocol + rooturl;
var allbread = precrumb + "<a href=\"" + currenturl + "\">" + rootname + "</a>" + postcrumb; // start with root

for (i=0; i < page_ar.length; i++)
{
  var displayname = "";
  currenturl += "/" + page_ar[i];
  if (objurl[page_ar[i]])
  {
    displayname = objurl[page_ar[i]];
  }
  else
  {
    if (ucfirst == 1)
    {
      displayname = page_ar[i].charAt(0).toUpperCase() + page_ar[i].substring(1);
    }
    else
    {
      displayname = page_ar[i];
    }
  }
  if (i == page_ar.length - 1) {
  displayname = (displayname.indexOf(".")) ? displayname.split(".")[0] : displayname;
  };
  allbread += crumbsep + precrumb + "<a href=\"" + currenturl + "\" target=\"mainFrame\">" + displayname + "</a>" + postcrumb;
}
top.document.getElementById("crumbsdiv").innerHTML = allbread;
};
Vergelijk deze code gerust om het verschil te zien met de oorspronkelijke code.

Maak in je hoofdpagina waar de crumbs moeten komen een div die je "crumbdiv" noemt en zet die op de plaats waar je de crumbs wilt.

Voorbeeld waar enkel de laatste crumb in het iframe geopend wordt en de directories in het hoofdvenster.

Greetz : Jer:cool:en.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan