2012-01-05 152 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

相关问题