【最大10000ポイント】当たる!!質問投稿キャンペーン!

漫画のリストのページを作っています。

<p>タイトルをクリックすると感想が別ウインドウに表示されます。<br>
<a href="#" onClick="window.open('001.html','w1','wight=300,resizable');">ドラえもん</a><br>
<a href="#" onClick="window.open('002.html','w1','wight=300,resizable');">パーマン</a><br>


と言うように常にw1と名付けた別ウインドウに感想が表示されるようにしています。これから、リスト項目がどんどん増えてくると思うのですが、「クリックしてw1ウインドウにページを開く」という一連の動作は同じなのでどうにかコードを簡略化したいのですが…何か方法がありましたら教えて下さい。地道にやった方が早いですか?アドバイスお願いします。

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

A 回答 (6件)

#4です。


>これを#3の方がご指摘のウインドウを開くと親ウインドウ>の一番上に
>スクロールしてしまう現象を回避する為の方法はあるので>しょうか?

<A>タグの場合herfに指定してある場所が親画面の
リンク先となります。今回の場合#を指定しているので
ページのトップに移動してしまうんでしょうね。
(#はページ間を移動します。)
ということなんで回避方法としてはherfの指定先を
書き換えることで回避可能のです。
#3のやっているやり方です。
ちなみにファイル名はを1.html,2.html・・
ということにしてあります。


こんな感じで。。
<SCRIPT>
var iLoopCnt=0;
var tLoopCnt=0;
var ContMax=2
var Title = new Array( 'ドラエモン' ,
'パーマン'
);
function WinOpen( cFileName )
{
var WinSize = "wight=300,resizable";
var WinName = "w1";
window.open( cFileName , WinName , WinSize );
}
while( iLoopCnt < ContMax )
{
document.write("<a href=\"javascript:WinOpen('" + ++iLoopCnt + ".html');\">" + Title[tLoopCnt++] + "</a><br>");

}
</SCRIPT>
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。本当に助かりました!感謝です。コードを改造できるようになるまでにはまだまだ時間がかかりそうです…は~。また質問することもあると思いますので、その時はどうぞ宜しくお願いしますね。

お礼日時:2003/05/22 11:28

#1の方に同意ですが、私としては、JavaScriptを使えない(使わない)方にも対応するために、


以下のようにすることを推奨します。

<a href="001.html" target="w" onClick="commonopen('001.html');return(false);">ドラえもん</a><br>

こうすれば、JavaScriptが使用できなくても、新しいウインドウで開いてくれます。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。JSを使えない(使わない)人のことも考える必要もありますよね(納得)
でも自分のためだけにJSを使ってしまいました~(グローバルな視野ゼロ…)また質問することもあると思いますので、その時はどうぞよろしくお願いしますね。

お礼日時:2003/05/22 11:40

なるほど、確かに面倒ですね。


動的にHTMlに表示する方法としてはCGIを
利用することが多いですがこれぐらいのことなら
JavaScriptで十分対応可能です。

下記のソースをそのまま埋め込むことで
質問の内容のHTML表示をします。

項目が増えた場合はContMaxと増やして
Titleに表示項目を追加するだけでOKです。

ちなみファイル名を1.html、2.html・・・
とすればカウンターの値そのまま利用できるので
もっと簡単になるのですが。。。


<SCRIPT>
var iLoopCnt=0;
var tLoopCnt=0;
var ContMax=2
var WinSize = "wight=300,resizable";
var WinName = "w1";
var Title = new Array( 'ドラエモン' ,
'パーマン'
);

function GetFileName( iFile )
{
var FileName;

if( iFile < 10 )
{
FileName = "00" + iFile + ".html";
}
else if ( iFile >= 10 && iFile < 100 )
{
FileName = "0" + iFile + ".html";
}
else
{
FileName = iFile + ".html";
}
return FileName;
}
while( iLoopCnt < ContMax )
{
document.write("<a href=\"#\" onClick=\"window.open('" + GetFileName(++iLoopCnt) + "',WinName,WinSize);\">" + Title[tLoopCnt++] + "</a><br>");

}
</SCRIPT>

この回答への補足

ご回答ありがとうございます。大変参考になります。御指摘の通りにファイル名を1.html,2.htmlとすることにして、ちょっとアレンジしてみました。

<SCRIPT>
var iLoopCnt=0;
var tLoopCnt=0;
var ContMax=2
var WinSize = "wight=300,resizable";
var WinName = "w1";
var Title = new Array();
Title[0]="ドラえもん";
Title[1]="パーマン";

function GetFileName( iFile )
{
var FileName;
FileName = iFile + ".html";
return FileName;
}
while( iLoopCnt < ContMax )
{
document.write("<a href=\"#\" onClick=\"window.open('" + GetFileName(++iLoopCnt) + "',WinName,WinSize);\">" + Title[tLoopCnt++] + "</a><br>");
}
</SCRIPT>

これを#3の方がご指摘のウインドウを開くと親ウインドウの一番上にスクロールしてしまう現象を回避する為の方法はあるのでしょうか?自分でいろいろやってみたのですが、どうもうまく機能しません(汗)もしよろしかったらアドバイスお願いします。

補足日時:2003/05/17 16:07
    • good
    • 0

私も#1の回答に同意しますが補足があります。


どのような感じでリンクを張っているのかわからないのですがリスト項目と書いていることから縦長のリストになると予想されます。
その場合、href="#"にしていると一度クリックして画面を出すと親画面(リスト項目画面)は一番上の方にスクロールしてしまいます。
そんなにリスト項目がないのなら問題ないのですがずっーーと下の方にスクロールしていてクリックしたら一番上に戻ったらイライラしますよね。

上記の解決方法として「href="#"」の部分を改良して
----------------------------------------
function commonopen(file)
{
window.open(file,'w1','width=300,resizable');
}
----------------------------------------の場合
<a href="javascript:commonopen('001.html');">01</a>

とすることで改善されます
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。そうか~リストが縦長になっていくことをすっかり忘れてました!(笑)いろいろな場面で使用できそうですね。是非活用したいと思います。また質問することもあると思いますので、その時はどうぞよろしくお願いしますね。

お礼日時:2003/05/22 11:37

 


> 一連の動作は同じなのでどうにかコードを簡略化したいのですが

ごもっともな疑問ですが、静的なHTMLを簡略化する方法はありません。
ですので、こうした場合、サーバサイドのアプリケーション(JAVA、Perl、PHP、ASP等)を使用してHTMLを動的に生成する、という手法を採るのが一般的です。
 
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。奥が深いですね~JSだけでも、もう付いて行けない自分には、上記の言語の習得は想像を絶する世界なんでしょうね…また質問することもあると思いますので、その時はどうぞよろしくお願いしますね。

お礼日時:2003/05/22 11:34

function commonopen(file)


{
window.open(file,'w1','width=300,resizable');
}

の様なJavaScriptを書いて

<p>タイトルをクリックすると感想が別ウインドウに表示されます。<br>
<a href="#" onClick="commonopen('001.html');">ドラえもん</a><br>
<a href="#" onClick="commonopen('002.html');">パーマン</a><br>


の様にしてしまえば良いと思いますが、地道に同じコードをコピーしても余り変わらないと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。#4,6の方のコードを使ってみることにしました。JSを学習中なもので、また質問することもあると思いますので、その時はどうぞよろしくお願いしますね。

お礼日時:2003/05/22 11:31

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

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


人気Q&Aランキング