2012-01-05 1 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, а селектор захватывает более одного элемента !!! – ManseUK

+0

Я не думаю, что это хорошая идея перейти от ненавязчивого JS к встроенным обработчикам событий, чтобы избавиться от jQuery. – amiuhle

+0

Вопрос спрашивает об этом в javascript – Dau

1

Да, и это довольно просто: использовать document.getElementsByTagName('a') и траверс массива вы получаете, седений onclick для любых элементов там есть атрибут href со значением, которое начинается с http. И сделайте это функцией, которая вызывается через атрибут 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