
このスクリプトで画像クリック時に新しいウインドウでサイトが開くようにするやり方を教えてください。target="_blank"は使えませんか?
<a href="javascript:jump()" ><img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg"h … /></a>
<script>
url = new Array();
url[0]="http://www.goo.ne.jp/"
url[1]="http://www.google.co.jp/"
function jump() {
p = Math.floor(Math.random() * url.length );
top.location.href = url[p];
}
</script>
No.2ベストアンサー
- 回答日時:
※#1さんとは別人です。
window.openでしょうか。
<script type="text/javascript">
<!--
function jump() {
var url = new Array(
'http://www.goo.ne.jp/',
'http://www.google.co.jp/'
);
var p = Math.floor(Math.random() * url.length );
window.open(url[p],"");
}
-->
</script>
</head>
<body>
<img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg"h … onclick="jump()" />
</body>
</html>
この回答への補足
回答ありがとうございます。
こちらのやり方だとカーソル合わせてもリンクかどうかわからないのでカーソル合わせた時にポインタがリンクに合わせたときのような変化にすることはできますか?
No.8
- 回答日時:
みっけ!
@if(@_jscript<=5.8)
@if(@_jscript_version <= 5.8)
おれいなんていらないよ!
まじ。びーるものめないし
No.7
- 回答日時:
#1,6です。
すみません。#3の補足を読み逃していました。
確かにマウスホバー時のリンクと違う場所に飛ぶのはいい気持ちしないですね。
#5 でbabu_babooさんが回答されているように、mouseoverを利用すれば可能だと思います。
以下、#6 を「click → mouseover」しただけのスクリプト。(全角空白は半角空白にしてください)
---------
<script type="text/javascript">
//<![CDATA[
document./*@cc_on @if(@_jscript<=5.8) attachEvent('on' + @else @*/addEventListener(/*@end @*/ 'mouseover', function (event) {
var target = event.target || event.srcElement;
var a = target.nodeName === 'IMG' ? target.parentNode : target;
if(a.nodeName !== 'A' || a.className !== 'randomLink'){ return false; }
console.log(a);
var url = ['http://www.goo.ne.jp/', 'http://www.google.co.jp/'];
a.href = url[Math.floor(Math.random() * url.length )];
},false);
//]]>
</script>
</head>
<body>
<p><a class="randomLink" href="http://www.goo.ne.jp/" target="_blank"><img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg" height="100" alt="test" /></a></p>
<p><a class="randomLink" href="http://www.goo.ne.jp/" target="_blank">test</a></p>
---------
No.6
- 回答日時:
#1です。
<img> を入れると、event.target の参照先がimg要素ノードになるのを失念していました…。
img にイベントをフックするのは何となく悔しいので、イベントバブルで頑張ってみたり。
(全角空白は半角空白にしてください)
---------
<script type="text/javascript">
//<![CDATA[
document./*@cc_on @if(@_jscript<=5.8) attachEvent('on' + @else @*/addEventListener(/*@end @*/ 'click', function (event) {
var target = event.target || event.srcElement;
var a = target.nodeName === 'IMG' ? target.parentNode : target;
if(a.nodeName !== 'A' || a.className !== 'randomLink'){ return false; }
var url = ['http://www.goo.ne.jp/', 'http://www.google.co.jp/'];
a.href = url[Math.floor(Math.random() * url.length )];
},false);
//]]>
</script>
</head>
<body>
<p><a class="randomLink" href="http://www.goo.ne.jp/" target="_blank"><img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg" height="100" alt="test" /></a></p>
<p><a class="randomLink" href="http://www.goo.ne.jp/" target="_blank">test</a></p>
---------
この回答への補足
回答ありがとうござます。
<scriptから</script>はjsファイルにまとめてやっているのですが
なぜかIEだけ▲のリンクをクリック(厳密に言うとサイト内の他のリンクも)しても全て無反応になってしまうバグがおきました。
firefoxとoperaは大丈夫でした。
ソース↓
<a class="randomLink" href="◆"target="_blank"><img src="★"alt="" border="0" height="150" /></a><a class="randomLink" href="◆" target="_blank"></a><script type="text/javascript" src="http:***.js" charset="utf-8"></script>
<font size="2">
<a href="★" target="_blank">▲</a>
</FONT>
(1)↓JSファイルの中身↓
document./*@cc_on @if(@_jscript<=5.8) attachEvent('on' + @else @*/addEventListener(/*@end @*/ 'click', function (event) {
var target = event.target || event.srcElement;
var a = target.nodeName === 'IMG' ? target.parentNode : target;
if(a.nodeName !== 'A' || a.className !== 'randomLink'){ return false; }
var url = ['http://www.goo.ne.jp/', 'http://www.google.co.jp/'];
a.href = url[Math.floor(Math.random() * url.length )];
},false);
↑JSファイルの中身↑
(2)↓JSファイルの中身↓
//<![CDATA[
document./*@cc_on @if(@_jscript<=5.8) attachEvent('on' + @else @*/addEventListener(/*@end @*/ 'click', function (event) {
var target = event.target || event.srcElement;
var a = target.nodeName === 'IMG' ? target.parentNode : target;
if(a.nodeName !== 'A' || a.className !== 'randomLink'){ return false; }
var url = ['http://www.goo.ne.jp/', 'http://www.google.co.jp/'];
a.href = url[Math.floor(Math.random() * url.length )];
},false);
//]]>
↑JSファイルの中身↑
(1)と(2)両方試しましたがだめだったです。
ちなみにjsファイルにしないでそのまま記載すると通常通り反応しました。
それとjsファイルを消したらちゃんと反応しましたので原因は中身だと思うのですが
jsファイルのまとめ方が間違ってますか?
No.5
- 回答日時:
ぼそっつと。
<p>
<a href="http://www.goo.ne.jp/" target="_blank">
<img src="test.jpg" alt="hoge" width="100" height="100"
onmouseover="
this.parentNode.href = [
'http://oshiete.goo.ne.jp/qa/5905356.html',
'http://okwave.jp/qa/q5905356.html'
][ Math.random() * 2 |0 ];
">
</a>
</p>
No.4
- 回答日時:
zeffです。
ステータスバーに表示させるのは
window.status
なんですがIE7,8,Firefoxではどうやらブロックされるらしく。
といって<a href>を戻して、
オンマウスした瞬間にhrefを書き換えてみても、
OperaではOKでしたがIE8とFirefoxで試したところ、
元のa href=""の中身がステータスに表示されてしまいました。
クリックするとちゃんとランダムジャンプするのですが。
そうなるとtitleに出す案ぐらいしか浮かびませんでした。
でもこれもブロックしてしまう状況がありそうな気が。
じゃなきゃwindow.onload時にランダムを確定させて、
hrefを書き換えるかなのかなぁ。
ちょっと頭が迷走してしまっているので、他の回答を待ってみてください。
お急ぎなのにすみません^^;
「titleに出す案」
※pは2つの関数にまたがって使うのでvar宣言は外に出します。
<style type="text/css">
<!--
img{
cursor:pointer;
}
-->
</style>
<script type="text/javascript">
<!--
var url = new Array(
'http://www.goo.ne.jp/',
'http://www.google.co.jp/'
);
var p;
function showURL(t){
p = Math.floor(Math.random() * url.length );
t.title= url[p];
}
function jump() {
window.open(url[p],"");
}
-->
</script>
</head>
<body>
<img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg" height="100" onclick="jump()" onmouseover = "showURL(this)" title="" />
</body>
</html>
No.3
- 回答日時:
#2のzeffです。
>こちらのやり方だとカーソル合わせてもリンクかどうかわからないのでカーソル合わせた時にポインタがリンクに合わせたときのような変化にすることはできますか?
スタイルシートで
img{
cursor:pointer;
}
と書くだけでOKです。マウスが乗ると手の形になります。
特定のところだと思うのでclassとかidで
img.rdmlink{
cursor:pointer;
}
<img class="rdmlink" ~ onclick~ />という感じですね。
さらにマウスオーバーで装飾する場合は、
imgに対してonmouseover/onmouseoutで行なってください。
あとさっき書き忘れましたがXHTMLだしaltを書くべきでしょう。
この回答への補足
回答ありがとうございます。
ランダムリンクできました。
一つ直したいのがカーソル合わせた時に通常通りにリンク先をステータスバーに表示したいのですがやり方ありますか?
No.1
- 回答日時:
target="_blank" は使えます。
(以下、全角空白を半角空白にしてください。)
<script type="text/javascript">
//<![CDATA[
function jump(event) {
var a = event.target || event.srcElement;
var url = ['http://www.goo.ne.jp/', 'http://www.google.co.jp/'];
a.href = url[Math.floor(Math.random() * url.length )];
}
//]]>
</script>
<p><a href="http://www.goo.ne.jp/" target="_blank" onclick="jump(event);">test</a></p>
この回答への補足
回答ありがとうございます。
最後のtestの所を<img src="http://bbs3.aimix-z.com/gbbsimg/kondo/3395.jpg"h … />に書き換えるとランダムにならずgooにしか飛ばないのですがなにか間違ってますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- HTML・CSS スクロールすると追従する画像のコードを書いているのですが、追従する画像の大きさの調節が上手くいきませ 2 2022/04/18 12:52
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- SEO googleサーチコンソールで、重複URLが多数発生、その修正方法について 2 2023/06/23 16:15
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クリックとダブルクリック
-
矩形のホットスポットにマウス...
-
【jQuery】複数の画像の読み込...
-
リンクをオーバーマウスで画像表示
-
インラインフレームでのクッキ...
-
クリックしたらJavaScriptで数...
-
javascript 画像切り替え ラン...
-
アクセス毎に画像を順番に切替...
-
mailto における TAG自動変換を...
-
javascriptで画像処理
-
jcarouselliteについてです。
-
マウスオーバーで画像の切替で...
-
テキストにマウスオーバーで画...
-
吹き出しに画像とコメントを入...
-
lightbox 誤作動 JAVA
-
jQuery要素 + <select></select...
-
jQueryで特定id以外の下にある...
-
ブラウザで表示されている罫線...
-
画像にロールオーバーするとメ...
-
ジャバスクリプトでクリックし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
window.openで値の渡し方を教え...
-
jQueryでサーバー上のファイル...
-
imgのsrcに値を設定するには
-
インラインフレームでのクッキ...
-
画像の座標位置取得
-
JavaScriptで画面サイズによっ...
-
画像をクリックして変数に値を代入
-
スライドショーとスワップイメージ
-
marqueeをJavascriptで書く方法
-
mailto における TAG自動変換を...
-
イメージマップ内のロールオー...
-
jQueryで画像を重ねる
-
javascriptで画像処理
-
クリックしたらJavaScriptで数...
-
イベントハンドラを完全に外部...
-
Class属性をJavaScriptで動的に...
-
続・時間によって表示される画...
-
このスクリプトで画像クリック...
-
画像と文字を同時に切り替えたい
-
セレクトボックスの組み合わせ...
おすすめ情報