マンガでよめる痔のこと・薬のこと

お世話になります。
いつも素晴らしいアドバイスをありがとうございます m(__)m

本日は【リンク集をCSVファイルで管理し、JavaScriptで表示】したく
投稿させていただきました。

◇JavaScriptでCSVファイル読み込み表示
5~10個のリンクを表示したい
1行目はアンカーテキスト、2行目にURL

◇CSVのデータをランダムに表示

上記のようにJavaScriptで管理する方法が可能でしょうか。
アドバイスお願いいたします。

現在、JavaScriptの勉強を始めたまったくの素人でございます。
参考になるサイト、書籍の情報もお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

動くかな?Ajaxを利用してます。


Ajaxは適当なライブラリを使ったほうが簡潔かも?
http://jsgt.org/mt/01/)ここのを使ってます
文字コードはUTF-8にしたほうが面倒ないかも?
昔勉強したAjaxコードを使ったので細かな補足は無理。

<html>
<body>
<script type="text/javascript">
window.onload=function(){
httpObj = createXMLHttpRequest(displayData);
if (httpObj) {
httpObj.open("GET","link.csv",true);//ここにファイル名
httpObj.send(null);
}
}
function displayData(){
if ( httpObj.readyState == 4 ){
var H='';
var F=[];
switch( httpObj.status ){
case 200:
var dt = httpObj.responseText.split("\n");
for( i=0; i< dt.length ; i++){
do rnd = Math.floor(Math.random()*dt.length); while(F[rnd])
F[rnd]=true;
buf = dt[rnd].split("\t");
H+=buf[0]+'<br><a href="'+buf[1]+'">'+buf[1]+"</a><hr>";
}
break;
case 403: H = 'アクセスが拒否されました'; break;
case 404: H = 'ファイルがありません'; break;
}
document.getElementById('tab').innerHTML=H;
}
}
function createXMLHttpRequest(cbFunc) {
var XMLhttpObject = null;
try{ XMLhttpObject = new XMLHttpRequest();}
catch(e){
try{ XMLhttpObject = new ActiveXObject("Msxml2.XMLHTTP");}
catch(e){
try{ XMLhttpObject = new ActiveXObject("Microsoft.XMLHTTP");}
catch(e){ return null;}
}
}
if (XMLhttpObject) XMLhttpObject.onreadystatechange = cbFunc;
return XMLhttpObject;
}
</script>
<div id="tab"></tb>
</body>
</html>
    • good
    • 0
この回答へのお礼

_pipi_ 様

ありがとうございましす m(__)m
思い通りのスクリプトありがとうございます。
どうにか利用することができました。


H+=buf[0]+'<br><a href="'+buf[1]+'">'+buf[1]+"</a><hr>";
を↓
H+='<br><a href="'+buf[1]+'">'+buf[0]+"</a><hr>";

<div id="tab"></tb>
を↓
<div id="tab"></div>


に、してみました。


後は、JavaScriptにStyleを指定する方法を勉強してみようと思います。

本当にありがとうございました (^^♪

お礼日時:2008/04/22 10:58
    • good
    • 0
この回答へのお礼

losajax 様

ありがとうございました m(__)m
面白いライブラリをご紹介いただきありがとうございます。

今後もいろんなライブラリをさわって勉強したいと思いました。

本当にありがとうございました (^^♪

お礼日時:2008/04/22 11:01

・ ブラウザ上で動くJavaScriptでテキストファイルの読み書きをするのをみたことないのですが。



・ 唯一、IEのJScriptで、拡張子(*.hta)のものは、
    var fso=new ActiveXObject("Scripting.FileSystemObject");
    var fs=fso.openTextFile("sample.cvs",1);
  と言うのは出来ました。
    • good
    • 0
この回答へのお礼

auty 様

ありがとうございました m(__)m
今後も勉強したいと思います。

本当にありがとうございました (^^♪

お礼日時:2008/04/22 10:59

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q外部ファイルにしたら文字化けしてしまいました

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先のアドレス(数字は画像と対応)
jmp[0] = "http://~";
jmp[1] = "http://~";
jmp[2] = "http://~";
jmp[3] = "http://~";
jmp[4] = "http://~";
// 画像のアドレス(数字はジャンプ先のアドレスと対応)
img[0] = "img/img1.jpg";
img[1] = "img/img2.jpg";
img[2] = "img/img3.jpg";
img[3] = "img/img4.jpg";
img[4] = "img/img5.jpg";
n = Math.floor(Math.random()*jmp.length);
document.write("<a href='"+jmp[n]+"' target='_blank'>");
document.write("<img src='"+img[n]+"' border='0'>");
document.write("</a>");

FC2ブログで下記【1】を

<script type="text/javascript">
<!--
【1】
// -->
</script>

で囲んで直接プラグインに書き込んだら
文字化けせずに表示されたのですが、

外部ファイルにして

<script type="text/javascript" src="【1】のJSファイルのパス"></script>

をプラグインに書き込んだら、
画像リンクはうまく表示されたのですが、
文字化けしてしまいました。

文字化けしない方法はないでしょうか?


【1】
// ランダムに画像を表示する
jmp = new Array();
img = new Array();
// ジャンプ先...続きを読む

Aベストアンサー

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

一般的に、Windowsの標準の環境だと。前段で述べた様な、様々な種類の文字コードを扱う事が出来ないので。事実上、作業は「Shift-JIS」1択と言う事になります。また『メモ帳(notepad.exe)』では「改行コード」を編集出来ないので、HTMLやJavaScript(JSファイル)を編集するには力不足です。何か特別なソフトとかを使わずに、Windows標準の『メモ帳(notepad.exe)』でJSファイルを編集したのであれば、十中八九、文字コードは「Shift-JIS」になっているはずです。


>文字コード
「文字コード」とは、コンピュータ上でテキストファイル(*.txt)をやり取りする時の方式の事で、現在では100種類近くの文字コードがあります。インターネット上でよく使われる文字コードは、「UTF-8」、「Shift-JIS」、「EUC-JP」~の3種類で、基本的にはこれだけ押さえておけばOKです。

考え方としては、日本語や英語のように。同じ意味を持つ文書でも色んな国の言葉で書く事が出来る様に。コンピュータ上での文書の表し方にも方言というか、色んな国の言葉がある様な物だと思ってて下さい。先に述べた「改行コード」や「BOM無し」とかは忘れて下さい。

で、初心者はコレだけ覚えて置いて欲しいのですが…

・半角英数文字だけなら文字化けは起きない

~と(実際は違いますが、話がややこしくなるので簡単にします)。半角英数文字ってのは「abc,?!#123456+-=」みたいな文字の事です。全角文字とは違うので注意して下さい(全角文字 → abc,?!#123456+-=)。従って逆説的に言えば「日本語を使う時は常に文字コードの影響を受ける」と言う事です。

自分は5歳児だろうが主婦だろうが手は抜きません。


とりあえず試しに、

<script type="text/javascript" src="JSファイルへのパス" charset="Shift-JIS"></script>

~と言う風にしてみて下さい( charset="Shift-JIS" というのを付け足す)。それで文字化けが直るようなら、貴方のJSファイルの文字コードは「Shift-JIS」と言う事になります。FC2のBlogサービスですか?それでHPやBlogを作っているのなら、基本的には文字コードはサーバ側、つまりこの場合は「EUC-JP」に統一するべき~という事になります。

...続きを読む

Qテキストファイルやcsvファイルで読み込んだデータを使ってjavascriptで処理する方法

javascript初心者です。
いろいろと調べたのですが、イマイチよく分からないので質問させてください。
テキストファイルやcsvファイルを読み込んで、
javascriptで判定処理をしたいと思います。

例えば、

A地区,1
B地区,0
C地区,4
・・・

といったデータを読み込んで、
javascriptで「0なら○地区には画像Aを表示、
それ以外なら○地区には画像Bを表示する」
という形で処理したいです。
でも、
・どうやってファイルを読み込むのか
・読み込んだデータをどのようにして配列へ入れるのか
がよく分からないです。
これらのページ
「http://q.hatena.ne.jp/1195740627」
「http://www.openspc2.org/JavaScript/Ajax/Ajax_study/chapter03/002/index.html」
のような方法を参考にすれば実現可能なのでしょうか。

Aベストアンサー

> ・どうやってファイルを読み込むのか

2つめの参考ページがそのままです。
これでわからなければもっと基本的なことから始めるべきです。
足し算やかけ算ができなければ、円の面積は解けないのと同じです。

http://www.openspc2.org/JavaScript/
http://www.tohoho-web.com/www.htm

1つめの参考ページは若干特殊な方法なので無視した方がいいかもです。

QVBScriptにて、csvファイルから特定のレコードを取得したい

以下のcsvファイルから例えば、「name」列が「aaa」の行を取得するVBScriptを作成したのですが、うまくいきません。ご教授お願いいたします。
---------------
name,id
aaa,1
bbb,2
ccc,3
---------------

作成したVBScriptは以下のものになります。
(SQL文のWhere句に直接、「where name= 'aaa'」と打つとうまくいきますが、変数を指定したいです。)
-------------------------------------------
Option Explicit

Dim objADO
Dim objRS
Dim strName

strName = "aaa"

'ADOオブジェクトを作成
Set objADO = CreateObject("ADODB.Connection")

'ADOを使いCSVファイルを扱う準備(オープン)を行う
objADO.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _
"DBQ=C:\sagyou\;" & _
"ReadOnly=1"

'SQLを実行し、当該タスクのデータを抽出します
Set objRS = objADO.Execute("select * from test.csv where name= strName")

'レコードセットをクローズobjRS.Close
objRS.Close

'ADOオブジェクトをクローズ
objADO.Close

以下のcsvファイルから例えば、「name」列が「aaa」の行を取得するVBScriptを作成したのですが、うまくいきません。ご教授お願いいたします。
---------------
name,id
aaa,1
bbb,2
ccc,3
---------------

作成したVBScriptは以下のものになります。
(SQL文のWhere句に直接、「where name= 'aaa'」と打つとうまくいきますが、変数を指定したいです。)
-------------------------------------------
Option Explicit

Dim objADO
Dim objRS
Dim strName

strName = "aaa"

'ADOオブジェクトを...続きを読む

Aベストアンサー

VBA みたいに "" を使うとダメみたいですね。失礼しました。
Set objRS = objADO.Execute("select * from test.csv where name='" & strName & "'")
としてみてください。

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

QHTMLで別PCのフォルダを開く

例えばネットワーク上に”192.168.100.250”というPCがあるとします。

このPCはフォルダウィンドウでフォルダ内を閲覧出来る場合、

別のサーバーのHTMLファイルから、

このフォルダを開く事は出来ますか?

以下のコードを追加して、testをクリックしても何も起こりません。。。

<a href="file:\\192.168.100.250\test">test</a>

どなたかお分かりになる方教えてください。

Aベストアンサー

[ANo.7] の続きね。

Firefox を例にするね。

■ ウェブブラウザのセキュリティ第1段階

1) Firefox でロケーションバーに "file:///c:/" を入力すると、『C:\』のフォルダの一覧が表示される。他のフォルダを入力すれば、同じように、そのフォルダの一覧が表示される。

2) 質問者さんは、悪意のあるウェブページとは知らずに、"http://example.org/akuinoaru.html" をダウンロードして、デスクトップに保存したとする。

その HTML の内容は↓これ。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  <title>Akuinoaru JavaScript Sample</title>
  <script type="text/javascript" src="http://example.org/akuinoaru.js"></script>
</head>
<body>
  <h1>Akuinoaru JavaScript Sample</h1>
  <div>
    <iframe id="iframe" width="100%" height="600" src="."></iframe>
  </div>
</body>
</html>

3) 質問者さんは、保存した HTML を Firefox で開くとする。

4) すると、デスクトップにあるファイルの一覧が表示される。

5) 『4)』とほぼ同時に "http://example.org/akuinoaru.js" が実行される。

6) akuinoaru.js は、表示されたフォルダの中にあるファイルを、
"http://example.org/akuinoaru.php" へ全て送信するという JavaScript だとする。

ということで、質問者さんの PC の中のファイルが、攻撃者のサーバに送信される。


つまり、『信頼できない HTML ファイルをダウンロードして、ウェブブラウザで開くのはすごく危険』ということ。


■ ウェブブラウザのセキュリティ第2段階

1) ウェブブラウザは、PC にウェブページのキャッシュを持つ。
つまり、自分でダウンロードしなくても、もともと HTML ファイルはダウンロードされているということ。

2) ここで、"http://example.org/akuinoaru.html" は "file:///ウェブページのキャッシュフォルダ/キャッシュファイル" へリンクを張ってあったとする(※)。

通常、このリンクはウェブブラウザによってセキュリティー上無効にされているけれど、これが有効だったとする。

3) 質問者さんは、上のページのリンクをクリックしたとする。

4) 以下、『ウェブブラウザのセキュリティ第1段階』の 『4)』と同じ。

今回は、リンクをクリックする想定をしたけど、実際はクリックしなくても、キャッシュファイルを表示させることができるから、悪意のあるページにアクセスしたら、すぐに、質問者さんの PC の中に保存されているファイルは、攻撃者のサーバに送信されてしまう。

このようなことが起こらないように、http://xxxxxx から file:/// へのリンクは無効にされている。


という説明で大丈夫かな?


※2) 実際には、キャッシュファイルのパスは固定じゃないから、JavaScript でがりがり生成して何回もトライしてキャッシュファイルのパスを見つける必要がある。でも危険なことには違いはない。

[ANo.7] の続きね。

Firefox を例にするね。

■ ウェブブラウザのセキュリティ第1段階

1) Firefox でロケーションバーに "file:///c:/" を入力すると、『C:\』のフォルダの一覧が表示される。他のフォルダを入力すれば、同じように、そのフォルダの一覧が表示される。

2) 質問者さんは、悪意のあるウェブページとは知らずに、"http://example.org/akuinoaru.html" をダウンロードして、デスクトップに保存したとする。

その HTML の内容は↓これ。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional...続きを読む

QHTMLからフォルダを開きたい

いつも大変お世話になります<(_ _)>

Webサーバー上にあるWebページ(HTML)の中に、ローカルPCのフォルダを開くリンクを付けたいのですが、
<a href="file://c:\windows">OPEN</a>
としても、何も反応しません。

いろいろ調べたのですが、上記の方法しか見あたりません。

なお、ブラウザのアドレス欄に file://c:\windows と入力すると、フォルダの内容が表示されます。
※Firefoxだと、ファイルの一覧になりますが・・・

何か環境によって挙動が異なるのでしょうか?
それとも、セキュリティ上の観点から最近じゃ出来なくなっているのでしょうか?

是非ともお助け下さい。宜しくお願い致します。

Aベストアンサー

file:///C:/windows/
/は三つでは・・・
 IEの場合はエクスプローラ(ファイルマネージャ)が開くような・・・
 IEはファイルマネージャーと一体のブラウザなので・・・

★実は、ローカルサーバーが必要です。
 apacheでも何でも良いので、WEBデータの入っているフォルダーを
<VIRTUALHOST 127.0.0.1>
C:\Document and settings\my document\web
 とかに指定して、Windowsのhostsファイルで、適当なサーバー名を指定しておきます。
myLocalhost 127.0.0.1
とか・・・

 そうすると
http://myLoclahost/
 で開けます。

 


人気Q&Aランキング