• 締切済み

リンクにおける挙動の参照と範囲指定

ほぼ初心者です。 html内に、javascriptを参照させて、以下のように作成しました。 <SCRIPT language="javascript"src="popup.js"></script> <□□> <a href="1.jpg" onclick="popup(href);return false;">テスト1</a> <a href="2.jpg" onclick="popup(href);return false;">テスト2</a> <a href="3.jpg" onclick="popup(href);return false;">テスト3</a> </□□> 普通にポップアップされたのですが、以下の方法ができないかと思っております。 (1)「onclick="popup(href);return false;"」の部分をほかから参照させる (2)特定の範囲のリンクのみ「onclick="popup(href);return false;"」を適用させる。 (1)はLightboxのように、「rel="thumbnail"」みたいに参照できないか、ということです。 (2)は上の「<□□>~</□□>」のように囲われた範囲のリンクで、「onclick="popup(href);return false;"」を適用できないか、ということです。 よろしくお願いします。

みんなの回答

  • notnot
  • ベストアンサー率47% (4845/10256)
回答No.1

HTMLソースのAタグに書かないということだと、JavaScriptで動的に追加ですね。 rel="foo" のAタグのonclickを追加するのだと、 <script type="text/javascript"> var a=document.getElementsByTagName("a"); for(var i=0; i<a.length; i++){ if(a[i].getAttribute("rel")=="foo") a[i].setAttribute("onClick","popup(href);return false;"); } </script> 実行のさせ方は色々あるけど、一番簡単なのはbodyの一番最後に上記を書くのがいいかと。 <div id="foo">。。。</div> で囲まれた内部のすべてのAタグが対象なら、 <script type="text/javascript"> var a=document.getElementById("foo").getElementsByTagName("a"); for(var i=0; i<a.length; i++){ a[i].setAttribute("onClick","popup(href);return false;"); } </script>

kumori-arare
質問者

お礼

もうひとつ補足です。 IEではsetAttributeを使うとバグがあるみたいです。 google chromeでは正常に動作しましたので、IEのバグが原因かと思います。 IEでも動作するような構文を教えていただければ幸いです。

kumori-arare
質問者

補足

ありがとうございます。 両方試してみたのですが、同一ウィンドウに”1.jpg”が読み込まれるだけで、ポップアップされません。 エラーは吐いてないみたいなのですが・・・

関連するQ&A

  • リンクをクリックして画像を切り替えるには?

    下記のようなソースなのですが、2枚目の画像に切り替わらず、表示されません。 何が悪いのでしょう? <header内>-------------------------------------> <SCRIPT type="text/javascript"> <!-- function showimg1(){ document.area.src = "/jp/shop/i/popup_usbcalc/cg4.jpg"; } function showimg2(){ document.area.src = "/jp/shop/i/popup_usbcalc/cg4_zoom.jpg"; } //--> </SCRIPT> -------------------------------------> <img src="cg4.jpg" alt="" name="area" /><br /> <table> <tbody> <tr> <td>[ <a href="javascript:void()" onclick="showimg1()">リンク1</a> ]</td> <td>[ <a href="javascript:void()" onclick="showimg2()">リンク2</a> ]</td> </tr> </tbody> </table>

  • IE7のJavascriptで return false をしてもリンクしてしまう

    これまでjavascript無効の人のために <a href="test.html" onclick="test();return false;">link</a> という感じで、無効の人はリンク先へ飛んで、有効の人はJavascriptを実行して処理する、といったコードを使っていました。 しかし、IE7では、onclickで false が帰ってきても、そのままリンクにいってしまうようで困っています。 IE6、Firefox2では思うように(onclickだけで止まる)動いてくれます。 もうこれは仕様のため、全面的に書き直さなければならないのでしょうか? ご存じの方おられましたらご教示いただけると幸いです。

  • javascriptに詳しい方

    下のスクリプトで見るべきページが二つ以上ある場合どのように記述すればいいのでしょうか? javascriptに詳しい方よろしくお願いいたします。 <html> <head> <script language="JavaScript"> <!-- var isClicked = false; //--> </script> </head> <body> <A href="check.html" onClick="isClicked = true">見るべきページ</a><br> <A href="test.html" onClick="if (!isClicked){ alert('先に見るべきページをクリックしてください'); return false; }">A</a><br> </body> </html>

  • jQuery LightBox Plugin動かず

    複数の画像をLightBoxで表示したくて http://shanabrian.com/web/library/jlightbox.php#option のページ参考にテストしてみました。紹介されてるダウンロードページからデータを取得し、 解凍後、css、images、jsディレクトリを適用するファイルと同じディレクトリに設置しました。 そしてJavaScriptおよびCSSをhead内にコピーし a要素にrel="lightbox"を追加 これで完了のはずですが、しかし動作しません。 画像のページが開いてしまいます。なぜ動かないのでしょうか? <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>テスト</title> <link rel="stylesheet" type="text/css" href="css/jquery.lightbox-0.5.css" media="screen" /> <script type="text/javascript" src="js/jquery.js"></script> <script type="text/javascript" src="js/jquery.lightbox-0.5.js"></script> <script type="text/javascript"> $(function() { $('#gallery a').lightBox(); }); </script> </head> <body> <a href="images/sample1.jpg" rel="lightbox"><img src="photos/image1.jpg" width="200" height="300"></a> <a href="images/sample2.jpg" rel="lightbox"><img src="photos/image2.jpg" width="200" height="300"></a> <a href="images/sample3.jpg" rel="lightbox"><img src="photos/image3.jpg" width="200" height="300"></a> </body> </html> お願いします。

  • jQueryでdivごとリンクする際の開き方の指定

    jQueryでdivごとリンクする際に 新しいウィンドウで開くものと、同じウィンドウで開くものを分けたいのです。 下にコードを載せています。 素人なりにおかしいかと思っている点は、 同じfunction()を続けて使っているところです。 2つのスクリプトをそれぞれ1つだけ書いた時はうまく動作します。 どのように書いたらよいでしょうか? よろしくお願いいたします。 ●新しいウィンドウで開きたいdiv要素 aaa,bbb,ccc ●同じウインドウで開きたいdiv要素 ddd,eee ------------------------------------------- <script type="text/javascript"> $(function(){ $(".aaa,.bbb,.ccc").click(function(){ window.open ( $(this).find('a').attr('href'), 'newwin' ); return false; }); }); </script> <script type="text/javascript"> $(function(){ $(".ddd,.eee").click(function(){ window.open ( $(this).find('a').attr('href'); return false; }); }); </script> -------------------------------------------

  • 複数のアラートから複数のジャンプページへリンクしたい

    サイトの1ページに6個のリンクボタンをつけ、それぞれに違うページにジャンプしたいです。 http://www.sky.sannet.ne.jp/masapine/java_alert8.html を参考に下記のようにしてみましたが、複数ページへのリンクの記述がわかりません。 どこかを変更すればよいのでしょうか。 よろしくお願いいたします。 <SCRIPT LANGUAGE="JavaScript"> <!-- function link1(){ if(confirm('本当にご覧になりますか。')){ location.href='xxx.html'; } } //--> </SCRIPT> <p><a href="xxx.html" onClick="JavaScript:link1();return false"><img src="photo.gif" alt="手術の写真を見る" width="150" height="37" /></a></p>

  • lightboxの設置

    <html lang="ja"> <head> <link href="css/lightbox.css" rel="stylesheet" media="all" type="text/css" /> <script src="jquery-3.1.1.min.js" type="text/javascript"></script> <meta charset="UTF-8"> <title></title> </head> <body><a href="img/bb123.jpg" data-lightbox="group" data-title="S001"><img src="img/bb123.jpg" alt="" width="256" /></a> <script src="css/lightbox.js" type="text/javascript"></script> <script> lightbox.option({ 'fitImagesInViewport' : true, 'wrapAround': false }) </script> </body> </html> とりあえずテストで、lightbox2の設置をしようとしているのですが、 サイトに書いてあるのと同じように、入力してみたのですが、 サムネイル画像が、プレビュー機能で拡大して見れるようにしたいのですが、 lightbox2が機能してくれません。 http://www.oikawa-sekkei.com/web/design/js/lightbox_v2_8_1.html 因みに、jqueryは、バージョンが解らないので最新版をダウンロードして使っています。 ご回答お願いします。

  • お世話になります。

    お世話になります。 phpで以下のhtmlを表示させ、Javascriptを実行させたい時にエラーが出るので <a href="" onclick="Hoge(’hoge’);return=false”>リンク</a> Firefoxでソースを見てみると以下の通りになります。 <a href="" onclick="Hoge(" hoge="" );return="" false;="">リンク</a> PHPで表示させたい場合(特にJavascriptの部分)はどのような書き方をすればよいのでしょうか?? ちなみに、IE8だとソースはきれいでしたが、Javascriptが実行できませんでした。 お急がしところ申し訳ございませんが、 ご教授いただけましたら幸いです。

    • ベストアンサー
    • PHP
  • ポップアップウインドウを開いたら、リンクを訪問済色にしたい

    現在、画像をJavaScriptでポップアップ表示させてます。 具体的には、以下のようにやってます。 <a href="./hana.jpg" onclick="window.open('hana.jpg','TITLE');return false">***</a> リンクを開いたら、そのリンクを訪問済色にしたいのですが、上記のやり方では、未訪問色のままです。 (履歴に残らないので当たり前ですが) href="#" にすると、最初から訪問済色となってしまいます。 クッキーを使って、開いた画像を履歴にしようかと思いましたが、手間ですし、大げさかと思いました。 何か良い方法がありましたらご教授下さい。 【参考:過去の質問】 http://okweb.jp/kotaeru.php3?q=983997

  • 画像リンクを別ウインドウでサイズ指定で開くように

    <a href="http大きいサイズの画像" onclick="javascript:window.open('1.html','win1','width=400,height=550');return false;"><IMG SRC="http小さいサイズの画像.jpg" width=60,height=60></a> 小さなサイズの画像をクリックすると、別ウインドウで大きな画像が開くタグを作りたいのですが、 その際に大きいサイズの画像を400×550サイズでぴったりと開くようにしたいのです。 上記のタグでは、別ウインドウでは開くのですがサイズは変わりません… Javascriptを使わないといけないのでしょうか? その辺のことが全くわからないので どなたかわかりやすく添削してもらえないでしょうか。

専門家に質問してみよう