2012-01-05 94 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代碼。 – 2012-01-05 12:46:52

+1

當然標準的JS可以處理這個,但它更多的工作。我會去與jQuery。沒有它,你必須遍歷'document.getElementsByTagName('a')'並檢查href是否有正則表達式。 – amiuhle 2012-01-05 12:48:48

回答

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和選擇器抓住多個單一的元素! – ManseUK 2012-01-05 12:51:13

+0

我不認爲從不顯眼的JS轉到內聯事件處理程序只是爲了擺脫jQuery是一個好主意。 – amiuhle 2012-01-05 12:52:25

+0

提問者詢問要在javascript中執行此操作 – Dau 2012-01-05 12:53:26

1

是的,這是比較簡單:只需使用document.getElementsByTagName('a')並遍歷你的陣列,對於任何要素塞汀onclick那裏有一個href屬性,其值以http開頭。例如,通過<html>中的onload屬性調用該函數。

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 2012-01-05 13:03:57

相關問題