48531


事前にカテゴリを三次元配列として用意して、for文で呼び出したhtmlがどのカテゴリに該当するか調べて、そのカテゴリに含まれているページを二次元配列（ページのURLとサムネイル）で返すというプログラムを作ろうとしています。

下のようなコードを書いたのですが、画面に表示される文字がURLではなく、undefinedになります。

どのようなコードを書けば良いのでしょうか？

ブラウザ : GoogleChrome  
htmlのパス : file:///D:/user1234/Documents/フォルダ/ホームページ/parts/index.html  
jsのパス : file:///D:/user1234/Documents/フォルダ/ホームページ/parts/○○.js

結果として、画面にparts/index.htmlと表示したいです。

index.html  

[code]

    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <title>JavaScript 関連記事<title>
    <script type="text/javascript" src="Category_list.js"></script>
    <script type="text/javascript" src="Related_article.js"></script>
    </head>
    
    <body>
    
    <script>
    //ここで関数呼び出し
    related_article("file:///D:/user1234/Documents/フォルダ/ホームページ/");
    </script>
    
    </body>
    </html>
    
[/code]

Category_list.js

[code]

    function category_list() {
     var list = [
       [
         ["index.html", "parts/header_img.jpg"]
       ],
       [
         ["test/index.html", "test/foo.jpeg"],
         ["test/hogehoge/index.html", ""]
       ],
       [
         ["parts/index.html", "test/foo.jpeg"]
       ]
     ];
    
     return list;
    }
    
[/code]

Related_article.js

[code]

    function get_page_array (domain) {
      //カテゴリリストを取得
      var cat_list = category_list();
      //カテゴリの数を取得
      var num_of_cat = cat_list.length;
    
      //カテゴリごとに調べる
      for (var c = 0; c <= (num_of_cat-1); c++) {
        var page_list = cat_list[c];
        var num_of_page = page_list.length;
    
        //ページごとに調べる
        for (var p = 0; p <= (num_of_page-1); p++) {
          var page_path = domain + page_list[p][0];
          //ファイルのURL(パス)とカテゴリに書かれたURLが一致すれば
          //そのカテゴリのページリストを返す
          if (location.href == page_path) {
            return page_list;
          }
        }
      }
    }
    
    function related_article (domain) {
      var related_array = get_page_array(domain);
    
      //undefinedになる
      document.write(related_array[0][0]);
    }
    
[/code]


CC BY-SA 4.0
2018-09-17T21:54:21.103
48490
2018-09-19T04:30:05.550
2018-09-17T22:39:14.927
30148
30148
question
javascript html
javascriptとhtmlで関連記事の表示をしたい


index.htmlの title の閉じるタグに / が入っていません。  
正しくは  
`<title>JavaScript 関連記事</title>`  
です。これで動作しました。


CC BY-SA 4.0
2018-09-19T04:30:05.550
48531
2018-09-19T04:30:05.550
30167
48490
answer