• 締切済み

txtファイルを読み込んでWeb上で自動作表したい

本日2月20日は、西郷輝彦さんの命日です。 当方は、彼の歌が好きで、歌のリストを作りました。 このテキストファイルをHTMLで読み込んで、 Web上で自動作表したいと思っています。 条件は、次のとおりです。 ・ローカル環境でできること ・OBJECTタグ、または、IFRAMEタグに読み込む ・JavaScriptでコーディングする ・読み込むファイルの例は次のとおり 曲名         発売日   チャペルに続く白い道 1964.04.15 星空のあいつ     1964.06.01 潮風が吹きぬける町  1967.10.01 JavaScriptに詳しいかたにご教示願いたく、 よろしくお願いいたします。

みんなの回答

回答No.2

何かのアクションを興してからでないと、ローカルフィルは読めません。 object要素に読み込んでブラウザ上に表示されていても、テキストは取得できません。 一応、tab区切りでも可能にしてあったのですが・・・。

retorofan
質問者

お礼

ご回答ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

回答が付きませんね。 曲名のファイル(list.js)は、次の構造にして拡張子は ".js" にします。 ----この下から---- const LIST=` 曲名         発売日   チャペルに続く白い道 1964.04.15 星空のあいつ     1964.06.01 潮風が吹きぬける町  1967.10.01 ` ----この行の上の行まで---- ※全角空白文字を、それで区切ったり、インデントとに使ったり、 文字列の最後に余計に付加したりと、それが面倒にしています。 <!DOCTYPE html> <meta charset="UTF-8"> <title></title> <body> <table id="hoge" border="1"></table> <script src="list.js"></script> <script> const ary2tbody=(a,b=document.createElement('tbody'))=>a.reduce((b,a)=>(a.reduce((c,d)=>(c.insertCell().append(d),c),b.insertRow()),b),b), str2Ary=s=>s.trim().split(/\n/g).map(r=>r.trim().replace(/^(\s+|\u3000+)|(\s+|\u3000+)$/,'').split(/\t|\u3000+|\x20+|,/g)); ary2tbody (str2Ary (LIST), hoge); </script>

retorofan
質問者

お礼

playlist.txt の内容を JavaScriptの変数にしての 作表では、目的に叶いません。 また、OBJECTタグ、またはIFRAMEタグは 作表のための必須条件ではありません。 それらのタグにテキストファイルを読み込んで 作表できたら・・・。そう考えただけです。 結局、new FileReader で読み込んで TR, TH,TDを生成する作表関数で実現出来ました。 この度、回答された方には厚く御礼申し上げます。

retorofan
質問者

補足

質問の趣旨は、 1.次のようなタブ区切りのテキストファイルがある。 曲名         発売日   チャペルに続く白い道 1964.04.15 星空のあいつ     1964.06.01 潮風が吹きぬける町  1967.10.01 2.この「playlist.txt」を読み込んだら自動作表する JavaScriptのコードのサンプルを知りたい。 <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Objectタグに読み込んだデータをJavaScriptで表に変える</title> <style> object { border: solid 1px gray; } </style> </head> <body> <h1>Objectタグに読み込んだデータをJavaScriptで表に変える</h1> <object data="./playlist.txt" width="400" height="200"></object> <script> //作表するコード document.addEventListener('DOMContentLoaded', makeTable); function makeTable(){ // } </script> </body> </html>

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 西郷輝彦さんのカラオケのCDを探しています!

    西郷輝彦さんの歌、チャペルに続く白い道、という曲 (だいぶ古いそうです)の、カラオケ版のCD、カセット、なんでもいいのですが、MDに録音をしたいと思い、大至急探しています。 通信カラオケに楽曲はあるようなのですが、ダウンロードサービスの曲にはなっていないようでした!こういう曲はどうしたら手に入るのでしょう!とても急いでいて困っています!

  • JS 動的な作表コード:普通じゃ物足りない?

    JavaScript 動的な作表コード:普通じゃ物足りない? 動的に作表するには、次のメソッドが使われています。 createElement, insertRow, insertCell さて、これらを用いずに 作表するにはどんなコードになりますか? 下記のとおり、素材を用意しました。 <script> //表の名称 (caption) const title = "一般果物 エネルギー 上位10"; //表の元データ (分割子は半角スペース) const data = ` 順位 果物名 含量 (Kcal) 1位 中国栗 207 2位 アボカド 178 3位 日本ゆで栗 152 4位 ドリアン 140 5位 バナナ 93 6位 あけび 89 7位 チェリモヤ 82 8位 アテモヤ 81 9位 ホワイトサポテ 73 10位 ぐみ 72`; </script>

  • 自動ページ遷移について

    VS2005でASP.NETで開発しています。 自動でページ遷移させたいのですが、手法がわからず困っています。 ・初期設定ファイルがありここに TimeOut値 を任意に設定 ・Application_Start で初期設定を読込み ・複数aspxページで TimeOut後 に任意のページに遷移 ということを行いたいのです。 TimeOut値を固定にすれば  <body onload="setTimeout('fncHoge()', 5000 ~ というように body タグに埋め込むことで可能なのですが、この場合の「5000」という 値を動的に変更したいと思っています。 どのようにするのが良いのでしょうか? コーディングで body タグの内容を変更できればとても楽なのですが... javascriptを動的に埋め込むことで、遷移先を任意に変更することはできています。

  • cmsをつかって吐き出されたHTMLファイルの中身を、別のページで共有

    cmsをつかって吐き出されたHTMLファイルの中身を、別のページで共有したいと考えております。 実際には共通のサイドメニューの部分をCMSで生成して、一つのhtmlファイルとして生成し、そのhtmlファイルの中身を共通する各ページの部分に読み込みたいのですが。。 SSIやphp、javascript、iframeなどを使ってhtmlファイルを外部から読み込む為の方法がいくつかありますが、自動で生成されたHTMLファイルの、任意の部分だけ(bodyタグ以下のソースだけ、IDを指定しているdiv部分のみなど)を指定して読み込む方法があれば教えてください。 サーバーの負荷も考えるとできれば、ssiではなくjavascriptで実行できればと考えております。どなたか教えて下さい、お願いします。

  • iframeに追記はできますか?

    JavaScript iframeに追記はできますか? タイトルのとおりです。 インラインフレームのページと インラインフレーム内のページは 同じ場所にあって、ローカル環境です。 要は、1つのiframe内に2つのファイルを入れられるか? ・HTMLファイルを1つ追加する ・JSファイルを1つ追加する くわしい情報をご存じの方、ご教示お願い致します。

  • コンテンツのエンコードを変更するには

    IFRAME内に表示されるコンテンツにおいて、METAタグではcharset=Shift_JISとなっているのですが、ファイル自体はUTF-8で保存されています。 このためブラウザで表示すると文字化けが発生し、ブラウザの[表示]-[エンコード]メニューから手動でエンコードを変更しています。 IFRAME内のコンテンツに矛盾があるのですが、すぐに改善することができません。 このようなコンテンツを文字化けさせずに表示させることはできないでしょうか。 あるいは、JavaScriptなどでボタンなどをクリックすれば簡単にエンコードを変更することはできないでしょうか?

  • jsファイルをhtml内で実行したい

    広告を入れ替えるjavascriptファイルがネット上で公開されているのですが それを使うにはjsファイルをダウンロードしてからサーバーにアップして、別途、htmlに実行させる記述を行えと書いていまして それは解説どおりにやればできたのですが、 この度、事情により、そのjsファイルを外部ファイルとしてではなく、html内に組み込みたい(組み込まなければならなくなった)のですが 素人でも簡単にできますか? jsファイルをメモ帳で開いてコピペして、実行する記述を追加すれば作動しますか? もし答えがYESなら実行する記述もご教示願います。 jsファイルの内容は次のとおりです。 function rotationAdv() { m = 0, x = 0, y = 0; ad = new Array(); adv = new Array(); hit = new Array(); // 広告0 hit[0] = 1; adv[0] = '広告タグ'; // 広告1 hit[1] = 1; adv[1] = '広告タグ'; // 広告2 hit[2] = 1; adv[2] = '広告タグ'; for(i=0; i<=hit.length - 1; i++) { m += hit[i]; } n = Math.floor(Math.random() * m); n++; for(i=0; i<=hit.length - 1; i++) { x = y; y += hit[i]; if(x<n && n<=y) ad = adv[i]; } document.write(ad); } 困っております。よろしくお願いします。

  • HTMLからPerlを呼び出すには?

    今、Perlで他のサイトのtxtファイル(中身はliタグやaタグのHTMLファイルで、そのサイトではSSIで呼び出されています)を、入手して表示させるプログラムを作っています。 これを、呼び出して、あたかも私のサイトのように見せるにはどうすればよいでしょうか? 現在はiframeを使ってそのままtxtファイルのアドレスを指定しているのですが、拡張子がtxtであるため、IEでしか見れないという不具合があります。 これを解決するために、とほほさんのwww入門 http://tohoho.wakusei.ne.jp/wwwperl2.htm#socket で紹介されているPerlを参考にしました。そのPerlのファイルをブラウザから直接URL指定すれば実行できるようにはなり、txtの中身が表示されるようになったのですが、どのようにHTMLから呼び出せばよいのかわかりません。 やはりSSIで実行するしかないのでしょうか。 javascriptの場合、<script>タグでHTMLに直接スクリプトを記述できますが、Perlでもそのようなことは可能ですか?

    • ベストアンサー
    • HTML
  • 毎日ウイルス付きメールが入ってくる(対処方法は?)

     ここ1週間前くらいから毎日必ずと言っていいほどウイルス付きメールが入ってきます。  何とか感染せずにはいるものの、いつも下記のようなものが入ってきます。それも心あたりの無い人のアドレスで、全てプロバイダーはOCNの人です。  (大部分省略)  ウィルスチェックサービスにてウィルスを駆除し,正常に送信を完了しました。 ・ウィルスの情報は次の通りです。 感染ファイル名:(part0000:)->(IFRAME0000) ウィルス名:HTML/IFrame_Exploit* ・ウィルスの情報は次の通りです。 感染ファイル名:(part0000:)->(IFRAME0000) ウィルス名:HTML/IFrame_Exploit* 等などです。  心あたりと言えば、友達から添付ファイル付きメールを送ってもらった後あたりから入るようになったような気がします。  毎日このようなメールが入ってくるのは嫌なので、入って来ないようにするにはどうすればいいのでしょうか?  対策を教えてくだされば幸いです。

  • PHPで音楽動画を自動再生させたい

    単刀直入をお許しください。 PHPのopendir() とreaddir()関数を使い、ディレクトリー内の複数の音楽動画のファイル名を一つずつHTMLの<embed>あるいは <video>タグのscr パラメーターに渡して再生し、動画が終わるたびに次の動画を再生するプログラムを作りたいと思います。 クリック用のボタンを用意して、一曲終わるごとに次を再生するのは出来ますが、ほおっておいても自動再生するとなると結構難しいように思います。動画の終わりを検知できれば簡単なような気がするのですが、 このために、動画が終わった時点で、その事実を検知するようなJavascript などの関数はありませんでしょうか? 詳しい方がいらっしゃいましたら、教えていただけると嬉しいです。