No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

breadCrumb.js 3.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*----------------------------------------*/
  2. /* breadCrumb.js ( 2012/11/16 )
  3. /* http://tshinobu.com/lab/breadCrumbJs/
  4. /* readcrumb (topicpath) generator by javascript
  5. /*----------------------------------------*/
  6. breadCrumbJsData = function(){
  7. /*----------------------------------------*/
  8. /* index.html をパンくずリスト生成に含めるかどうか定義します。
  9. /* false … index.html を無視する
  10. /* true … index.html を無視しない
  11. /*----------------------------------------*/
  12. this.indexMatch = false;
  13. /*----------------------------------------*/
  14. /* パンくずリストから除外するパスを定義してください。
  15. /* 最後に「/」を付けないようにしてください。
  16. /* 除外しない場合 … ''
  17. /* 除外する場合 … '/lab/breadCrumbJs'
  18. /*----------------------------------------*/
  19. this.ignorePath = '/third';
  20. /*----------------------------------------*/
  21. /* パンくずリストに表示する名前を定義してください。
  22. /* (書式) "ディレクトリ名" : "表示名"
  23. /*----------------------------------------*/
  24. this.contentName = {
  25. "home" : "ホーム", // この行は残してください。
  26. "/~kitagata/":"トップ",
  27. "/~kitagata/living/":"くらしの情報",
  28. "/~kitagata/living/copy_of_the_certificate_of_residence.html":"戸籍・住民票など",
  29. //"/templateSiteHP/index.html" : "index",
  30. "" : "" //この行は残してください。
  31. };
  32. }
  33. var breadCrumbJsData = new breadCrumbJsData();
  34. function breadCrumbJs(){
  35. /*----------------------------------------*/
  36. /* 以下条件分岐 / 表示処理部分
  37. /*----------------------------------------*/
  38. var URL = window.location.pathname.replace(breadCrumbJsData.ignorePath, '');
  39. var thisURL = URL.match(/(.*?)\//g);
  40. var fileName = window.location.pathname.match(/([^¥/]+?)$/);
  41. if ( fileName && (!( fileName[0].match("index") && !breadCrumbJsData.indexMatch )) ){ thisURL.push( fileName[0] ); }
  42. var drw = document.getElementById("breadCrumb");
  43. var rootingPath = "";
  44. if ( drw.tagName == "P" | drw.tagName == "DIV" ){
  45. for( i=0; i<thisURL.length; i++){
  46. rootingPath += thisURL[i];
  47. if ( i == 0 ){
  48. drw.innerHTML = '<a href="'+breadCrumbJsData.ignorePath+'/">' + funcIndexSearch('home') + '</a>';
  49. } else if ( i == thisURL.length - 1 ){
  50. drw.innerHTML += ' &gt; <strong>' + funcIndexSearch(rootingPath) + '</strong>';
  51. } else {
  52. drw.innerHTML += ' &gt; <a href="'+breadCrumbJsData.ignorePath+''+rootingPath+'">' + funcIndexSearch(rootingPath) + '</a>';
  53. }
  54. }
  55. }
  56. if ( drw.tagName == "UL" | drw.tagName == "OL" ){
  57. for( i=0; i<thisURL.length; i++){
  58. rootingPath += thisURL[i];
  59. if ( i == 0 ){
  60. drw.innerHTML = '<li><a href="'+breadCrumbJsData.ignorePath+'/">' + funcIndexSearch('home') + '</a></li>';
  61. } else if ( i == thisURL.length - 1 ){
  62. drw.innerHTML += ' <li class="active"><strong>' + funcIndexSearch(rootingPath) + '</strong></li>';
  63. } else {
  64. drw.innerHTML += ' <li><a href="'+breadCrumbJsData.ignorePath+''+rootingPath+'">' + funcIndexSearch(rootingPath) + '</a></li>';
  65. }
  66. }
  67. }
  68. }
  69. function funcIndexSearch(){
  70. /*----------------------------------------*/
  71. /* パンくずリスト生成検索処理
  72. /*----------------------------------------*/
  73. keyword = breadCrumbJsData.contentName[arguments[0]];
  74. if(keyword == undefined){
  75. return arguments[0].match(/(.*?)\//g).pop().replace("/","");
  76. } else{
  77. return keyword;
  78. }
  79. }
  80. if(window.addEventListener) {
  81. window.addEventListener("load", breadCrumbJs, false);
  82. }
  83. else if(window.attachEvent) {
  84. window.attachEvent("onload", breadCrumbJs);
  85. }