フレーム処理に対してJavaScriptを用いたちょい技を使ってみたいと思ったことがあることでしょう。 極々一般的なことですが、1つのリンクで2つのフレームを同時に変更してしまうスクリプトです。
HEAD部分にスクリプトを記述します。
BODY部のリンク先にJavaScriptを指定(href="JavaScript:DblChg(A1,B1,A2,B2)")します。 当然ながら、呼び出すフレーム名(A1,A2)はフレーム設定したときの名前と同じものにします。 またリンク先(B1,B2)を指定します。 この時、フレームA1に表示する内容はB1から、フレームA2に表示する内容はB2からのものになります。
3つ以上に増やしたい場合、スクリプト部分の「window.open」の行を増やし、引数も増やします。 増やした引数の変数名は他のものにする必要があります。例えば、以下のようになります。
function DblChg(FrNm1,Url1,FrNm2,Url2,FrNm3,Url3){ window.open(Url1,FrNm1); window.open(Url2,FrNm2); window.open(Url3,FrNm3); }
当然ながら、リンク元のhref属性値であるJavaScriptコール部分の引数も増やします。
IE3,NN2以上
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Frameset//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>2フレーム同時リンク</title> </head> <frameset cols="50%,50%"> <frame src="sp41_1.html" name="LeftFrame"> <frame src="sp41_2.html" name="RightFrame"> </frameset> <noscript> <body> <p>フレームに関する紹介のページです。フレーム対応版でご覧下さい。</p> </body> </noscript> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>2フレーム同時リンク</title> <style type="text/css"> <!-- a{ text-decoration: none; } h1{ font-size: 24pt; font-weight: bold; color: #c30; margin: 0 0 10px 0; padding: 0 0 0 10px; border-style: solid; border-color: #f00; border-width: 0px 0px 1px 20px; } div{ margin: 10px; } --> </style> <script language="JavaScript"> <!-- function DblChg(FrNm1,Url1,FrNm2,Url2){ window.open(Url1,FrNm1); window.open(Url2,FrNm2); } // --> </script> </head> <body> <h1>sp41_1.html(LeftFrame)</h1> <div> <a href="JavaScript:DblChg('LeftFrame','sp41_3.html','RightFrame','sp41_4.html')"> クリックするとこのフレームを含み、右側のフレームも同時に変更します。 </a> フレーム名、変更内容は下表、右フレームの表の通りです。 </div> <table border="1" cellpadding="3"> <tr> <th>位置</th> <th>フレーム名</th> <th>現在</th> <th>リンク先</th> </tr> <tr> <td>左</td> <td>LeftFrame</td> <td>sp41_1.html</td> <td>sp41_3.html</td> </tr> <tr> <td>右</td> <td>RightFrame</td> <td>sp41_2.html</td> <td>sp41_4.html</td> </tr> </table> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>2フレーム同時リンク</title> <style type="text/css"> <!-- a{ text-decoration: none; } h1{ font-size: 24pt; font-weight: bold; color: #c30; margin: 0 0 10px 0; padding: 0 0 0 10px; border-style: solid; border-color: #f00; border-width: 0px 0px 1px 20px; } div{ margin: 10px; } --> </style> <script language="JavaScript"> <!-- function DblChg(FrNm1,Url1,FrNm2,Url2){ window.open(Url1,FrNm1); window.open(Url2,FrNm2); } // --> </script> </head> <body> <h1>sp41_2.html(RightFrame)</h1> <table border="1" cellpadding="3"> <tr> <th>位置</th> <th>フレーム名</th> <th>現在</th> <th>リンク先</th> </tr> <tr> <td>左</td> <td>LeftFrame</td> <td>sp41_1.html</td> <td>sp41_3.html</td> </tr> <tr> <td>右</td> <td>RightFrame</td> <td>sp41_2.html</td> <td>sp41_4.html</td> </tr> </table> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>2フレーム同時リンク</title> <style type="text/css"> <!-- a{ text-decoration: none; } h1{ font-size: 24pt; font-weight: bold; color: #03c; margin: 0 0 10px 0; padding: 0 0 0 10px; border-style: solid; border-color: #00f; border-width: 0px 0px 1px 20px; } div{ margin: 10px; } --> </style> <script language="JavaScript"> <!-- function DblChg(FrNm1,Url1,FrNm2,Url2){ window.open(Url1,FrNm1); window.open(Url2,FrNm2); } // --> </script> </head> <body> <h1>sp41_3.html(LeftFrame)</h1> <div> <a href="JavaScript:DblChg('LeftFrame','sp41_1.html','RightFrame','sp41_2.html')"> クリックするとこのフレームを含み、右側のフレームも同時に変更します。 </a> フレーム名、変更内容は下表、右フレームの表の通りです。 </div> <table border="1" cellpadding="3"> <tr> <th>位置</th> <th>フレーム名</th> <th>現在</th> <th>リンク先</th> </tr> <tr> <td>左</td> <td>LeftFrame</td> <td>sp41_3.html</td> <td>sp41_1.html</td> </tr> <tr> <td>右</td> <td>RightFrame</td> <td>sp41_4.html</td> <td>sp41_2.html</td> </tr> </table> </body> </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <meta http-equiv="Content-Style-Type" content="text/css"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>2フレーム同時リンク</title> <style type="text/css"> <!-- a{ text-decoration: none; } h1{ font-size: 24pt; font-weight: bold; color: #03c; margin: 0 0 10px 0; padding: 0 0 0 10px; border-style: solid; border-color: #00f; border-width: 0px 0px 1px 20px; } div{ margin: 10px; } --> </style> <script language="JavaScript"> <!-- function DblChg(FrNm1,Url1,FrNm2,Url2){ window.open(Url1,FrNm1); window.open(Url2,FrNm2); } // --> </script> </head> <body> <h1>sp41_4.html(RightFrame)</h1> <table border="1" cellpadding="3"> <tr> <th>位置</th> <th>フレーム名</th> <th>現在</th> <th>リンク先</th> </tr> <tr> <td>左</td> <td>LeftFrame</td> <td>sp41_3.html</td> <td>sp41_1.html</td> </tr> <tr> <td>右</td> <td>RightFrame</td> <td>sp41_4.html</td> <td>sp41_2.html</td> </tr> </table> </body> </html>