• 締切済み

リンク先をジャバスクリプトで別ウィンドウで見せるとき他のリンクの色も変わってしまう II

リンク先を別ウィンドウで飛ばすため、同じページにある他のリンクも <a href="#">AAAA</a>(これはポインタを手のマークに変えてリンクをわかり易くするためです) <a href="#">BBBB</a> のように指定していますが、これだと一度クリックしてしまうと 全てのリンクが訪問後の色に変わってしまいます。 この問題はどう改善できるのでしょうか? 前回質問のアドバイスを元に記述してみたのですが↓ <a href="javascript:function void(0)" onClick="window.open('../htm/1.htm','','scrollbars=yes,width=700,height=700')">1234</a> <a href="javascript:function void(0)" onClick="window.open('../htm/2.htm','','scrollbars=yes,width=700,height=700')">5678</a> やはりクリックしてみるとリンク全てが訪問後の色に変わってしまいました、

みんなの回答

  • pick52
  • ベストアンサー率35% (166/466)
回答No.3

もう、いっそのこと <a href="javascript:void(0);" style="color: blue;" onclick="window.open('../htm/1.htm','','scrollbars=yes,width=700,height=700')">1234</a> みたいな感じにしてはどうでしょうか。 これなら、クリックしてもリンクの色は変わりません。 なお、本来はアンカータグのhref属性にjavascript:スキームを 使用するのは非推奨なのですが、この辺は仕方ないところです。 あと、よく使用されている href="#" は悪習慣であり、使っては いけません。 http://blog.webcreativepark.net/2007/08/01-135601.html

kendoo
質問者

お礼

皆様アドバイスしていただき大変勉強になっています! 一番簡単そうな方法の <a href="javascript:void(0);" style="color: blue;" onclick="window.open('../htm/1.htm','','scrollbars=yes,width=700,height=700')">1234</a> <a href="javascript:void(1);" style="color: blue;" onclick="window.open('../htm/2.htm','','scrollbars=yes,width=700,height=700')">5678</a> といった感じで記述してみようと思います。 ステータスバーに”ページにエラーが発生しました”と出るのがとても気になってしまいますが、、 href="#" はダメなのですね! 今までずっと使ってきたので修正が大変になりそうです。 ありがとうございました!!!

  • sample_
  • ベストアンサー率76% (20/26)
回答No.2

これならいかが? ・html<body>内 -- <body> <span id="aaa">google</span><br /> <span id="bbb">google</span><br /> <span id="ccc">google</span><br /> </body> -- ・css -- span{ color: blue; text-decoration:underline; cursor : pointer; } -- ・javascript -- var dom = {}; dom.addEventListener = function(node, type, func, phase) { if(!node){return false}; if(!phase){phase = false}; if(node.addEventListener) { node.addEventListener(type, func, phase); } else if(node.attachEvent) { node.attachEvent('on'+type, func); } else { return false; } return true; }; dom.addEventListener(window,'load',default_set); function default_set(){ dom.addEventListener(document.getElementById("aaa"),'click',link); dom.addEventListener(document.getElementById("bbb"),'click',link); dom.addEventListener(document.getElementById("ccc"),'click',link); } function link(evt){ if(document.uniqueID){ var id = window.event.srcElement.id; document.getElementById(id).style.color = "#840084"; }else{ var id = evt.target.id; document.getElementById(id).setAttribute("style", "color:#840084"); } window.open("http://www.google.co.jp"); } -- ページを閉じても訪問済みの箇所を再現させたいときは、cookieを活用してもらえばOKです。

回答No.1

アンカーのリンク先が全く同じなら一蓮托生で訪問済みになるのが当 たり前だと、http://oshiete1.goo.ne.jp/qa4443751.htmlで教えても らいましたよね。今度もそれぞれのアンカーでhref属性の値が全く同 じなんですから、最初のリンクの色が変わるなら次のリンクも一蓮托 生で色が変わるのが当然です。 で、アイデアですが、void関数に与えるパラメータを0だけじゃなく てアンカーごとにいろいろ変えてみるとどうなるでしょう。つまり、 <a href="javascript:function void(0)" onClick="window.open ('1.html','','scrollbars=yes,width=700,height=700')">1234</a> <a href="javascript:function void(1)" onClick="window.open ('2.html','','scrollbars=yes,width=700,height=700')">5678</a> 私の環境ではhref属性の値がjavascriptなアンカーでは何回実行して も訪問済色にはならないので確認は不可能ですが。別物として認識す る確率は高いと思いますし、voidにどんなパラメータを与えても何も しないことに変わりはないので無害なはずです。

関連するQ&A

  • java scriptで新しいウィンドゥを開く

    クリックすると、アドレスバー等がない新しいウィンドゥで開く…という風にしたいのですが、うまく行きません。 以下のようにやってみたのですが、何処が間違っているのでしょうか? <script language="JavaScript"> <!-- function winopen(url){ win=window.open(url,"host","scrollbars=1,width=717,height=700"); } //--> </script><FONT size="+1"><B><A href="ブログのアドレス" target="_blank" onclick="Javascript:winopen('ブログのアドレス');return false;">ここをクリック</A></B></FONT>

    • ベストアンサー
    • HTML
  • javascriptでのポップアップウィンドウが開かなくて困っています><

    初歩的な質問ですいません。 <script language="JavaScript"> <!-- function OpenWin(){ win=window.open("sample.html","new","width=100,height=100"); } //--> </script> <a href="javascript:OpenWin()"><img src="img/1.jpg" width="60" height="60" onClick="MM_openBrWindow('sample.html','sample','scrollbars=yes,width=460,height=460')" border="0"></a> 上のスクリプトで下のリンクで開こうとする時に、 どうしても開けません。>< どうしてなのでしょうか!? どこかが間違えているのでしょうか!? 誰か助けていただけませんでしょうか;><;;

  • 別ウインドウを開くようにしてるのですが

    こんにちは HPで画像を開く際に、下のようなjavascriptを使っています。 <SCRIPT Language="JavaScript"> <!-- function openwin(url) { /* 横幅400px、縦幅200pxのウインドウを開く */ w = window.open(url, 'win','width=400,height=200,status=no,scrollbars=yes,directories=no,menubar=no,resizable=yes,toolbar=no'); } //--> </SCRIPT> body部分に <a href="javascript:openwin('abc.htm')">いろは </a> としています。 で、お教え願いたいのは、別のサイズのウインドウにしたいときはどうしたらいいのでしょうか? 普段は400×200でいいのですが、たまに400×400にしたいときがあります。 方法を教えてくださいませ よろしくお願いいたします。

  • 新しいウィンドウでリンクを開く方法。

    target="_blank"を使わないで、JavaScriptで新しいウィンドウでリンクを開く方法として、 ・<a href="○○.html" onClock="window.open('○○.html','窓の名称','width=○○,height=○○'); return false; ">○○</a> ・<a href="javascript:void(0);" onClock="return open Win('○○.html','窓の名称','width=○○,height=○○')">○○</a> のふたつは同じものなのですか。 異なるのでしたら、どちらを使うべきでしょうか。

  • ポップアップウィンドウを画面中央に配置+複数リンクを同じウインドウに表示させたい

    過去にあった複数のイベント等の写真をスライドショーで紹介するページを作成中です。 ひとつのページ上に複数リンクがあって、それぞれクリックするとポップアプウィンドウが画面中央で開くようにすることはできました。(下記参照) <script type="text/javascript"> <!-- function win(url,windowname,width,height) { var features="location=no, menubar=no, status=yes, scrollbars=yes, resizable=yes, toolbar=no"; if (width) { if (window.screen.width > width) features+=", left="+(window.screen.width-width)/2; else width=window.screen.width; features+=", width="+width; } if (height) { if (window.screen.height > height) features+=", top="+(window.screen.height-height)/2; else height=window.screen.height; features+=", height="+height; } window.open(url,windowname,features); } // --></script> body内 <a href="link_page.htm"onclick="win(this.href,null,600,430); return false;"><img src="image.gif" width="123" height="18" /></a></td> ただ複数あるリンクをクリックすると、ポップアップウィンドウも次々増えてしまうのを、常にひとつのウインドウ上に表示させることができません。 どうぞご指南よろしくお願いします!

  • 別のウインドウを出す

    HTMLにて、Aというファイル内でリンク指定したジャンプ先をB、更にBというファイル内でリンク指定したジャンプ先をCとしたとき、それぞれJavascriptのopen_windowを使って、それぞれ別のページをウインドウの大きさを変えて表示させるようにしたいのですが、A→Bはうまくいくのですが、B→Cをすると、BのページがCに変わる(同一ウインドウでジャンプされる)だけで、Cを表示したいウインドウが新規に出てきません。 因みに、 <a href="javascript:open_window('ファイル名',form,width=200,height=200,left=0,top=0,resizable=yes,scrollbars=yes)">ジャンプ先</a> としています。 どこを修正すればいいか解らないので教えて下さい。よろしくお願いします。

  • 別窓リンクの問題点は?

    画像リンクによる別窓表示で下記の一行のみのソースをリンクとして別窓表示しています。この方法でのデメリットはありますでしょうか? -------------------------------------------------------------- <body> <a href="javascript:void window.open('test.html',null,'height=450,width=300,menubar=no,toolbar=no,scrollbars=no');"><img src="test.gif"></a> </body> -------------------------------------------------------------- サイト検索で見かける別窓表示のソース↓ <head> <script language="JavaScript"> function openWindow(i) { window.open("sample" + i + ".html","","width=700, height=600"); } </script> </head> <body> <a href="javascript:openWindow('1')">sample1.html</a><br /> </body> これとの比較したときの問題は?

  • ジャバスクリプトでウィンドウサイズ指定を複数

    ご覧いただきありがとうございます。 ネットで調べながら独学でジャバスクリプトの設置をしております。 色々ためしたのですが解決できないのでご教授願います。 ウィンドウサイズを指定して新しいウィンドウを開くジャバスクリプトのリンクを、異なる条件で同じページに複数指定することはできるでしょうか。 同ページ内にあるAのリンクはサイズ400×300で、Bのリンクは600×500といった具合にです。 自分なりに考えてみて下記のように記述してみましたが、BのリンクにもAが適用されてしまいました。 ■head内の記述 <head> <script language="JavaScript"> <!-- function wopen1(){ win=window.open("リンクAのURL","new","width=400,height=300","resizable=no","scrollbars=no","menubar=no","toolbar=no","directories=no","status=no","left=100","top=100","screenX=100","screenY=100"); win.moveTo(100,100); } // --> </script> <script language="JavaScript"> <!-- function wopen2(){ win=window.open("リンクBのURL","new","width=600,height=500","resizable=yes","scrollbars=yes","menubar=no","toolbar=no","directories=no","status=no","left=100","top=100","screenX=100","screenY=100"); win.moveTo(100,100); } // --> </script> </head> ■リンク箇所の記述 <a href="javascript:wopen1()">リンクAのテキスト</a> <a href="javascript:wopen2()">リンクBのテキスト</a> head内の記述をひとつだけにすると正常に動作するので、head内の記述が間違っていると思うのですが、よくわかりません。ご教授おねがいいたします。

  • 指定場所にジャンプと、新しいウィンドウを開くを指定すると動かない

     フレーム分割して本文と本文に対して語句の説明で別々に指定すると動きますが、指定場所にジャンプと新しいウィンドウを開くを両方指定すると起動しません。 <BASE target="ue"> <SCRIPT Language="JavaScript"><!-- function op_gen_2u3z() { window.open("../../h/h_h/genro_2u3z.htm","_blank","width=500,height=600 left=1,top=1,scrollbars=yes,resizable=yes");} function op_gen_z02() { window.open("../../h/suraido/genro_z02.htm","_blank","width=500,height=600 left=1,top=1,scrollbars=yes,resizable=yes");} // --></SCRIPT> 指定して 本文の記述内容で下記のように使用しています。 <A HREF="gen_er_2u3.htm#t-33">弐拾ケ年已前</A> <A HREF="javascript:op_gen_z02()">黒川山</A> でも「黒川山」の指定を下記のように指定すると動きます <A HREF="javaScript:void(0)" onClick="window.open('../../h/suraido/genro_z02.htm','_blank','width=350,height=700 left=300,top=1,scrollbars=yes')">黒川山</A>  但し履歴が消せません 標準設定では、xp Service Pack2 のローカル マシン ゾーンでは、新しいウィンドウは開きますが、「ページを表示できません。」と 語句の説明のフレームに表示されます。 上記方法の記述での誤りを教えて下さい

  • java scriptによるポップアップウインドウについて

    <head> <SCRIPT language="JavaScript"> <!-- function OpenWin1(){ win=window.open("window1.html","new","width=300,height=100"); } // --> <!-- function OpenWin2(){ win=window.open("window2.html","new","width=500,height=200"); } // --> </SCRIPT> </head> <body bgcolor="#FFFFFF" text="#000000"> <A href="javascript:OpenWin1()">1.ウィンドウを開く</A> <A href="javascript:OpenWin2()">2.ウィンドウを開く</A> </body> 「1.ウィンドウを開く」をクリックしてwindow1.htmlのポップアップウインドウを表示させたまま、「2.ウィンドウを開く」をクリックすると、最初のウインドウサイズを保持したまま、新しいウインドウが開いてしまうのですが、これをうまく処理する方法はないのでしょうか? どなたかアドバイス頂けると嬉しいです。 よろしくお願い致します。

専門家に質問してみよう