2012-01-05 14 views
0

私は自分のサイトで次のコードを使用しています。私はそれを行うにはjQueryが必要かどうか、または標準のjavascriptがプロセスを処理できるかどうか疑問に思っています。jQueryなしでこれを行うことはできますか?

 <script type='text/javascript'> 
    //<![CDATA[ 
    $(window).load(function(){ 
    $("a[href^='http']").click(function(event) { 
     event.preventDefault();    // prevent the link from opening directly 
                 // open a pop for the link's url 
     var popup = window.open(this.href , "", "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,status=no,width=340,height=10,left=250,top=175"); 
     // popup.blur(); 
     // window.focus(); 
    });   });    //]]> 
    </script> 

それは、このページからです:Pop Under on Click for RSS Feed - Javascript

+3

jQueryはJavaScriptコードです。 –

+1

もちろん、標準のJSがこれを処理できますが、それ以上の作業です。私はjQueryと一緒に行くだろう。それがなければ 'document.getElementsByTagName( 'a')'をループし、hrefで正規表現をチェックする必要があります。 – amiuhle

答えて

0

あなたがはいこの

<div id="divid" onclick="showpop();">click me</div> 
<script type="text/javascript"> 
function showpop(){ 
window.open(arguments); 
return false; 
} 
</script> 


document.getElementById(eleID).onClick = function(){ 
//do stuff 
} 
+0

jQueryセレクタはDIVではなく、セレクタは1つ以上の要素を取得します。 – ManseUK

+0

jQueryを取り除くために控えめなJSからインラインイベントハンドラに移行するのは良い考えではないと思います。 – amiuhle

+0

質問者がjavascriptでこれを行うように頼んでいます – Dau

1

を試すことができ、そしてそれは比較的簡単です:ちょうどdocument.getElementsByTagName('a')を使用すると、あなたが得る配列を横断し、任意の要素のためのonclickをSETING httpで始まる値を持つhref属性があります。そして、これは、例えば属性のonloadで呼び出され、<html>にあります。

0
var hrefs = document.getElementsByTagName('a'); 
for (i in hrefs) { 
    if (hrefs[i].href && hrefs[i].href.match(/^http/)) { 
    hrefs[i].onclick = function(){ 
    var popup = window.open(this.href , "", "toolbar=no,menubar=no,location=no,scrollbars=no,resizable=no,status=no,width=340,height=10,left=250,top=175"); 
    return false; 
    } 
} 
} 
+0

好奇心の念から、関数に変数を代入して再利用すると、メモリ。正しい? – amiuhle

関連する問題