ファイル:index.html 001.html abc.csv

csvに
no、name、data1 data2 hp
のフィールドがあり、それを読み込ませて表を
index.htmlに作成するところまではできました。

hpのフィールドには詳細情報の書かれた
ファイルの名前、(今回ですと001.html)が
入力されています。

質問1
表の形式は番号、名前、データ1、データ2、で、
その右に「詳細」という文字の入ったボタンを
作成するにはどうしたらよいでしょうか?
現在は、マニュアルなどを参考に
以下のように入力してボタンは表示されています。

<TD><INPUT ID="JumpHP" TYPE="button"
VALUE="詳細" onClick="JumpHomepage()"></TD>

このあとこのボタンにリンクを貼りたいので
このような作成方法でよいのか教えてください。

質問2
1で作成したボタンをクリックしたときに
指定のページを開かせるJumpHomepage()を
作成しようとしているのですが、

<SCRIPT language="JavaScript">
<!--
function Jumphomepage(){
window.open(abc.recordset.Fields("hp").value,
"???",
"toolbar=yes,location=yes,menubar=yes,status=yes,resizable=yes");

}
//-->
</SCRIPT>

<OBJECT CLASSID="clsid:333c7bc4-460f-11d0-bc04-0080c7055a83"
ID="abc">
<PARAM NAME="CharSet" VALUE="shift-jis">
<PARAM NAME="DataURL" VALUE="abc.csv">
<PARAM NAME="UseHeader" VALUE="true">
</OBJECT>

ここまで考えてみましたがその後どうしたらよいのか
わかりません。window.openの後ろの()の中をどのような記述にすればよいのでしょうか?
また根本的にここが違うということがあればご指導ください。
初めてJAVAに取り組んでおります。詳しく教えていただけると嬉しいです。よろしくお願いします。わかりにくい点などありましたら、補足致します。

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

A 回答 (4件)

ごめんなさい、JAVAと書いてあることと、


ボタンを既に作成して書いてあるということで、
そういう部分(ボタンの中身の取り出し)は既にできるのだと思い込んでいました。
javascriptでのサンプルを作ってみました。参考にして下さい。JScriptになっていますが、質問文の例は結局IEに依存していると思うので、IEに依存した書き方なのでそうしています。
<html>
<head>
<title>サンプル</title>
<script language="JScript">
window.onload=init;
function init(){
var recordSize=abc.recordset.recordCount;
for(var i=1;i<=recordSize;i++){
csvTable.rows(i).cells(4).innerHTML="<INPUT ID='JumpHP"+i+"' TYPE='button' VALUE='詳細' onClick=JumpHomepage('"+csvTable.rows(i).cells(4).innerText+"')>";
}
}
function JumpHomepage(url){
window.open(url,"タイトル","toolbar=yes,location=yes,status=yes,resizable=yes");
}
</script>
</head>
<body>
<table id="csvTable" width="700" border=1 datasrc="#abc">
<thead>
<tr>
<td>No</td><td>Name</td><td>Data1</td><td>Data2</td><td>HP</td>
</tr>
</thead>
<tbody>
<tr>
<td><span datafld = "no"></span></td>
<td><span datafld = "name"></span></td>
<td><span datafld = "data1"></span></td>
<td><span datafld = "data2"></span></td>
<td><span datafld = "hp"></span></td>
</tr>
</tbody>
</table>
<object id="abc" classid="CLSID:333C7BC4-460F-11D0-BC04-0080C7055A83">
<PARAM NAME="CharSet" VALUE="shift-jis">
<param name="DataURL" value="abc.csv">
<param name="UseHeader" value="true">
</object>
</body>
</html>
    • good
    • 0
この回答へのお礼

初めてのことでJAVAとJscriptが違うのもわかっていなくて・・・カテゴリも違ってますね・・・
ご迷惑をおかけしました。
1回目から無謀な挑戦だったかもしれないです・・・
ご提示頂いたサンプルは、私が思っていたとおりの
動き方をするものでした。ありがとうございます。

VBAは少しやったことがあるので、データの扱いや
考え方のおよそのことはわかります。
頂いた、サンプルも意味を読むことができましたので
こちらをベースにさせて頂き、少しずつ手を加えながら
完成できるようにがんばります!

本当にお世話になりました。
心より御礼、ならびにお詫び申し上げます。

お礼日時:2005/04/22 10:05

>ボタンの方の記述を


><TD><INPUT ID="JumpHP" TYPE="button" VALUE="詳細" onClick="JumpHomepage(url)"></TD>
>にすると、「urlは宣言されていません」
>というエラーが出ます。
(;;)
ボタンの方は、urlでなくてその行に応じたhpの値を取りだしたモノにするのです

>どの行のボタンを押しても一番上の001.htmlにしか
当初の
window.open(abc.recordset.Fields("hp").value,
の部分で、
abc.recordset.Fields("hp").valueが001.html
になっていたためだと思います。
TDの中身を作成する時に、nameやdata1,data2をとりだしているようにすればいいんですよ

もう、くじけそうです。orz
    • good
    • 0

>各行ごとに指定してあるページを開かせることは


できますか?
そういう話をしているつもりだったんですが・
orz
まず、クライアント(ユーザがこのページを見ている時)で、新しくウィンドウをjavascriptから開くには、
window.openを使います、質問文に書いておられるから知っているかと・
window.openは
window.open(HTMLのアドレス,タイトル,ウィンドウの設定)
の様な形式になっています。これも書いておられる通りですが・
なので、
window.open(?????,
"タイトル",
"toolbar=yes,location=yes,menubar=yes,status=yes,resizable=yes");
?????の部分のアドレスが判れば、呼び出せます。
具体的には、ボタンのonclickにJumphomepage()が書かれているのでこの関数が呼ばれて、この中でwindow.openを呼び出します。
この時、
function Jumphomepage(url){
と書いておけば、
Jumphomepage('001.html')の様に呼び出した時には、
urlに'001.html'がセットされるので、
window.open(url,
"タイトル",
"toolbar=yes,location=yes,menubar=yes,status=yes,resizable=yes");
と書いておけば
window.open('001.html',
"タイトル",
"toolbar=yes,location=yes,menubar=yes,status=yes,resizable=yes");
の意味になります。
なので、001.htmlが新しいウインドウで開かれることになります。

この回答への補足

良くわかっていなくてすみません。

関数を
function Jumphomepage(url){
window.open(url,
"タイトル",
"toolbar=yes,location=yes,menubar=yes,status=yes,resizable=yes");

ボタンの方の記述を
<TD><INPUT ID="JumpHP" TYPE="button" VALUE="詳細" onClick="JumpHomepage(url)"></TD>

にすると、「urlは宣言されていません」
というエラーが出ます。

function Jumphomepage(){  と
onClick="JumpHomepage()"  の組み合わせ
ですと、「オブジェクトを指定してください」
ということになります。

はじめのうちに触っていたときには
ファイルが開くには開いていて、ただ問題だったのが
どの行のボタンを押しても一番上の001.htmlにしか
ジャンプしませんでした。
確率的には、一番最後のが合ってそうなんですが
あまり触りすぎてわからなくしてしまいました・・・
この後の対処法を教えていただけますでしょうか?
何度もお手数をおかけして申し訳ないです。

補足日時:2005/04/19 18:43
    • good
    • 0

CSVを読み込んで、動的にテーブルを作成してQ1の部分(ボタン)を作ってるんですよね。


だったら、その時に、
onClick="JumpHomepage()"
の部分を
onClick="JumpHomepage('001.html')"
になるようにhpを取り出して作成するのが楽だと思います。
ボタンを押したときに実行されるjavascriptは、クライアント側で実行されるので、ユーザ実行時にフィールドの取り出しはできませんから。
もし、javascriptの中に取り出したフィールドの中身を埋め込みたかったら動的に<script>部分を作らなくちゃいけませんし、また、とても面倒です。
リンクを開く関数をurl指定で呼び出せば
関数の方では
function Jumphomepage(url){
window.open(url,…
となって簡単です。

この回答への補足

ご回答ありがとうございます。
表は同じ内容で以下、30件以上続きます。
それぞれに「詳細」があります。
onClick="JumpHomepage('001.html')"
の001.htmlをCSVの hp の項目に
記述してあるのですが、そのURLを取得させて
各行ごとに指定してあるページを開かせることは
できますか?

リンクを開く関数をurl指定で呼び出せば
関数の方では
window.open(url,…
の部分も具体的に良くわからないのですが

onClick="JumpHomepage('001.html')"
とボタンの方を設定した場合
関数がfunction Jumphomepage(url){
の形になるということですか?

良くわかっていなくて申し訳ないですが
よろしくお願いします。

補足日時:2005/04/18 16:44
    • good
    • 0

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

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

このQ&Aを見た人はこんなQ&Aも見ています

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

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

Qエクセル 別ファイル内の特定のシートへリンクしたいのに

こんにちわ。

エクセルのリンクについて質問です。
使用しているのはExcel2000です

エクセルでインデックスを作成し、そのシートから
別に用意しているエクセルファイルへリンクをしたいのです。

Aファイルに1・2・3とシートがあった場合
INDEXにはそれぞれ1・2・3別々にリンク先を設け
それぞれをクリックするとしかるべきシートへ飛びたい。

今のところできているのはジャンプ先のファイルを「開くだけ」のようで、シート2の目次をクリックしても
シート1が開いてしまいます。
どうすればよいでしょうか???

Aベストアンサー

リンク先にあらかじめ「名前」を定義しておくと可能かと思います。
これは言ってみれば特定のセルに付ける「目印」のようなものです。
[名前の定義方法]
(1)「クリックしたら開かせたいシート」の先頭のセルを選択して
 メニューバー「挿入」-「名前」-「定義」をクリック。
(2)「名前」欄に、分かりやすい名称を入力して「OK」ボタンをクリック
(3)(1)~(2)を必要なだけ繰り返す。
[「名前」を使ったリンクの設定]
(1)リンクを設定したいセルをクリックして、ツールバー「ハイパーリンクの挿入」ボタンをクリック
(2)リンク先として目的のファイルを選択し(おそらくここまではご自分でできているんですよね?)、さらに「ブックマーク」ボタンをクリック
(3)定義した名前が出てくるので、リンク先の「名前」をクリック
(4)OKボタンをクリック
 →「アドレス」欄に「・・・・(ファイル名)#(名前)」と表示されているかと思います。これで「○○ファイルの××という名前をつけた場所」という、ピンポイント的なリンクが設定されます。
(5)「OK」ボタンをクリック
いかがでしょう?

リンク先にあらかじめ「名前」を定義しておくと可能かと思います。
これは言ってみれば特定のセルに付ける「目印」のようなものです。
[名前の定義方法]
(1)「クリックしたら開かせたいシート」の先頭のセルを選択して
 メニューバー「挿入」-「名前」-「定義」をクリック。
(2)「名前」欄に、分かりやすい名称を入力して「OK」ボタンをクリック
(3)(1)~(2)を必要なだけ繰り返す。
[「名前」を使ったリンクの設定]
(1)リンクを設定したいセルをクリックして、ツールバー「ハイパーリンクの挿入」ボタ...続きを読む

Q

<input type="hidden" name = "hoge">があったとします。
これを、javascriptを使用し nameで検索します。
”hoge”を検索後、その”hoge”という名前を変更する方法を探しています。 

<input type="hidden" name = "hoge">
       ↓↓↓↓↓
<input type="hidden" name = "fuga"> 

リフレッシュ無しで、上記のようにnameを変える方法が知りたいです。

ご存知の方おりましたら、お手数ですが教えていただけませんでしょうか。
宜しくお願いいたします。

Aベストアンサー

タグが特定出来れば、setAttribute等で属性値を変更出来ます。
setAttribute("name","fuga")

Qエクセルでリンク貼り付けしたリンク先のシート名を可変にしたい

エクセルでリンク貼り付けをすると、「='[リンク先.xls]リンク先シート名'!G37」の様な式になりますが、この式の中のリンク先シート名の部分を、例えばどこかに書いておいてそこを参照するとか、とにかく可変にしたいのです。
エクセルのバージョンは2000です。
よろしくお願いします。

Aベストアンサー

A1にシート名があるなら
=INDIRECT("[リンク先.xls]"&A1&"!G37")

Qで、Q1に後で値を設定して表示するには

お世話になります。
<input type="text" name="Q1">で、Q1に後で値を設定して表示するにはどうしたら良いものでしょうか。
name="Q1"
と、しているので、
onMousedown="function()"
で、nameでしてしたエリアに値を書き込めば、できると思うのですが、
このfunction()をどのように書いたらよいものか、いろいろ調べてもわかりません。
何とかご教示願えないでしょうか。
よろしくお願いします。

Aベストアンサー

javascriptを利用することで出来ます。
こんな感じで動くでしょう。
ちなみにテキストボックスなどをjavascriptで操作する場合は
idをつけておくと便利です。

これ以上をやりたいというのであれば
参考URLなど見て勉強してみてください
<html>
<head>

</head>
<body>

<input type="text" id="Q1" name="Q1" onmousedown="hoge()">
</body>
<script type='text/javascript'>
function hoge()
{
Q1.value = ""; //""のなかに設定する値
}
</script>

参考URL:http://www.parkcity.ne.jp/~chaichan/src/javasc21.htm

QHTMLで、エクセルのワークシートへリンク

HTMLで、エクセル内のワークシートへリンクさせたいのですが
その絶対パスの書き方がわかりません。

C:\Documentsから始まって~\エクセル\●●.xlsで、
エクセルフォルダ内、
●●のエクセルファイルまでは開くことができました。
で、さらに、
そのエクセルの中のワークシートまで指定したいのですが、
ワークシートのパスは
どのように書けばいいのでしょうか?

●●.xls\ワークシート名
では開きませんでした。

よろしくお願いします。

Aベストアンサー

IEのみですが
<a href="test.xls#Sheet2!A1" >エクセルシート2</a>
のようにしてみて下さい。
特に必要なくてもセルまで記述して下さい

Q

数十の<a>タグがあるHTMLファイルの中で、
<div id="blank">で囲まれた<a>タグ群のみをすべてtarget="_blank"にしたいと考えています。
該当する<a>タグすべてにtarget="_blank"を書くと、HTMLファイルの容量が大きくなるので、CSSのIDとJavaScriptを組み合わせて、実現できないものでしょうか。

Aベストアンサー

<base target="_blank">
<div id="blank">
 <!-- -->
</div>
<base target="_self">

Qエクセルファイルにあるシートのリンクだけを切りたい

タイトルの通りです。
いつのまにか共有フォルダにあるエクセルファイルと
リンクが結ばれていました。
共有フォルダにあったファイルは必要なくなったので、
削除しましたが、デスクトップにあるエクセルファイルの
シートにかかっているリンクは生きています。

このリンクを切りたいのですが、ワークシート化しており、またたくさんのタブを作っていますので、何か
一度ですべてのシートのリンクを切れる方法があれば
教えてください。

以上、よろしくお願いいたします。

Aベストアンサー

OFFICEのバージョンはXPか2003でしょうか?
それなら「編集」「リンクの設定」でリンク元のファイルを選択して「リンクの解除」を押してください。

Q

▼次のようにページ内のdivタグのidの名前によって、formタグ内の要素をdisableにすることはJava scriptによって可能でしょうか?

<div id="AA">のとき、別の場所にある<form id="BB">内のselect要素などすべての要素をdisableにする。

また同時に、id="BB"に指定したスタイルシートの記述を書き換えることは可能でしょうか?

何かよい方法をご存知でしたら教えてください。よろしくお願いいたします。

Aベストアンサー

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として使わない方が良いです。
つまり、
id="soldout"の時に
var soldout;という風にはしない方が良いです。
同じでなければ、cartFormでもなんでもかまいません。
あと、scriptは、
<!--
(スクリプトの中身)
//-->
のように
<!--
//-->
で囲むようにします。

getElementById
は、ブラウザやのブラウザのバージョンによっては使えないことがあります。
その場合は、使えるかどうかを調べる必要があります。

<script type="text/javascript">
<!--
function stockStatus (num){
var f=document.getElementById("soldout");

if(f!=null){
for (var i =0; i<=f.length -1 ;i++){
f.elements[i].disabled=num;
}
}
}
//-->
</script>

>なぜか時々エラーが出ます。
ウチでちょっと試した程度ではエラーが発生しませんでした。
できましたら、発生したときのメッセージや場所また、ブラウザの種類なども教えてください。

以下は、予防的な意味での注意点についてちょっと書きます。
>return false;

は、必要ないです。
書かない方がいいと思います。
==nullの場合の処理が必要ないなら
!=nullにすればよいです。
もしくは
return false;でなくて
;
のように空文でもよいです。
あと、idに使っている名前と同じ名前を変数名として...続きを読む


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング