• 締切済み

ジャバスクリプトに関して教えてください。

ジャバスクリプトで質問です。 表A 商品番号  商品名 C001    りんご A003    みかん B015    スイカ 上記をHTMLで表にした際に一番左の商品番号の値を取ってきて基本と成るURL http//kihon/url/ の最後に商品番号をつけてURLとしてウィンドウを開いていく事って可能でしょうか? http//kihon/url/C001 http//kihon/url/A003 http//kihon/url/B015 これらのウィンドウを別ウィンドウで出したいです。 更に同一ページ内でジャバスクリプトを組み込む事ができなくて、できればフォーム分けしたページでの取得と、別ウィンドウで開くと言う形でしたいのですが… まだまだ勉強中でこの値をとってくること、更にその複数のデーターをひとつずつに分けて開くと言うやり方がわかりません。 どなたが教えていただけませんでしょうか? ジャバスクリプトに関しては本当に基本的なことの一部くらいしかわかりません… 質問の仕方が悪くて大変申し訳ないです。

みんなの回答

  • yuu_x
  • ベストアンサー率52% (106/202)
回答No.4

その表に、id とか、class とか、識別できるようなものはついてますか、 ないとすると、ごり押しになりそうですね。 ちなみに、同一ドメインのページじゃないと JS ではセキュリティ上取得できない事になっているので、その場合は サーバー側を使用するか、あきらめてください。

20090503q
質問者

補足

識別は無くて <td>C001</td> <td><a href="http//kihon/url/C001">りんご</a></td> と言った感じです。 innerTextを使って<td>C001</td>間の値をとってURLにくっつけようとしてるのですが… 良く判らなくて… ジャバスクリプトで実行って難しいのでしょうか?

回答No.3

#01のものです。たびたびすみません。 #02の方がお答えくださっているように元のテーブルのページにaddEventListenerを定義する方法ならテーブル部分は変更しなくても大丈夫です。ただ、addEventListenerはIEだと使えないので、ちょっと困りものです。 質問者さんの質問から推測するに、テーブルのページはテーブルに限らず、全く変更できないのかな?と思ったので、以下のような方法はどうでしょうか?かなり回りくどいですが、JavaScriptのみを用いて、なおかつ親ページ(テーブルのページ)にJavaScriptを記述しないなら、この方法ぐらいしか、私は思いつきませんでした。 【方法】 親ページはそのままでいいです。 商品番号には<a href="http://kihon/url/C001">C001</a>という風になっているということでよろしいですね。 あとは子ページにあたるhttp://kihon/url/C001のページに次のようなスクリプトを入れてやればいいです。 <script type="text/javascript" language="javascript"> <!-- if(document.referrer == "http://kihon/url/"){   window.open("http://kihon/url/C001");   location.href = "http://kihon/url/"; } //--> </script> つまり、親ページから子ページを開き(この時点では子ページは旧ウインドウで開いている)、子ページで、新しく子ページを新ウインドウで開きます(この時点では新旧の両方のウインドウで子ページを開いている)。そのあと旧ウインドウでは親ページを開きます。 これを実行すると、旧ウインドウでは親ページが開き、新ウインドウでは子ページが開き、なおかつ画面には新ウインドウが表示されるはずです。ちなみにdocument.referrerはPHPなどのREFERERとはなぜかスペルが違いreferrerとなぜかrが1個多いので気をつけてください。 りファラーで条件判定をしないと、新しいウインドウが際限なく出てきてしまうので気をつけてくださいね。

20090503q
質問者

補足

本当に説明が悪くてすみません。 正確に言うと元のページも子ページもいじれない状態です。 イメージとしては外部ページって考えて頂けたらうれしいです。 そのデータのあるリンク先が先の記述どおりに “urlの後ろの商品番号” のurlになるので 先の方法でジャバスクリプトのみで出来ないかと試してみたのですが… firstChild.innerText このような形でノードを取ってきて文字列のみを取得と言うのは無理なんでしょうか? 本当に基本が出来てないので… 厳密に言うと元も子ページも触れないものをリンクをこっちで組み替えてたい、。 元ページの方から情報を取得して子ページの複数のurlを生成それらを一括でウィンドウとして出したいと言う考えなんです。 さらにジャバスクリプトに詳しくなりたいとおもい考えていました。 こういったことってジャバスクリプトだけではやはり不可能なんでしょうか?

回答No.2

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>TEST</title> <table> <tr> <th>商品番号</th> <th>商品名</th> </tr> <tr> <td>C001</td> <td>りんご</td> </tr> <tr> <td>A003</td> <td>みかん</td> </tr> <tr> <td>B015</td> <td>スイカ</td> </tr> </table> <script type="text/javascript"> //@cc_on document./*@if(1) attachEvent('on'+ @else@*/ addEventListener (/*@end@*/  'click', function (evt) {   var e = evt./*@if(1) srcElement @else@*/ target /*@end@*/;   if ('TD' === e.nodeName && 0 === e.cellIndex) {    window.open('http://kihon/url/' + e.firstChild.nodeValue);   }  }, false); </script>

20090503q
質問者

補足

すみません…この元のページは変更が出来ない別ページなんです。 ジャバスクリプトでドキュメントの情報を取得して、その取得からURLに変換してウィンドウオープンさせたかったのです… 折角答えた頂いたのに申し訳ありません。 もし上記の方法で可能なら教えていただけませんか?

回答No.1

質問の意味を確認させていただきたいのですが、つまり http://kihon/url/index.html というファイルがあって、そのファイルにJavaScriptを記述せず、べつのページにJavaScriptを記述して、フォームから値を取得したいということでよろしいでしょうか? 単にJavaScriptをJSファイルとして別に作って、それをリンクして使うというだけなら可能ですが、もしそういうことではなく、JavaScriptを完全に使っていないページからの情報を別ページのJavaScriptで受けることはCGI(PerlやPHPなど)を使わない限りはできません。ですので、この場合ではなく、上のindex.htmlにJavaScriptを記述した場合のやり方を書きます。 まず、りんごなどの商品名に<a>タグでリンクをはり、hrefでJavaScriptの関数名を指定します。関数の引数には商品番号を入れてください。 (例)<a href="javascript:idou('C001')">りんご</a> 次に関数の定義です。 新しいページを開くのはwindow.open("ページのURL")です。ですから、次のように書いてやればいいです。 function idou(code){   window.open('http://kihon/url/'+code+'/'); } あとは http://kihon/url/C001/index.html などのページが用意してあれば、無事にページを開けるはずです。

20090503q
質問者

補足

回答有難うございます。 もしこの商品番号の所が <a href="http//kihon/url/C001">C001</a> と言った表である場合は。そのURLから情報を取得して開くとのはジャバスクリプトでは無理でしょうか? 因みにこの最初の表のページはまったくいじれないのです。 firstchild でノードを取るというのも不可能でしょうか? 付け焼けばの知識ばかりなので… ご返答よろしくお願いします。

関連するQ&A

専門家に質問してみよう