0

I have tried this but the loop works only for the first element.

<html><head>
<script type="text/javascript" src="http://db2.stj.s-msn.com/br/sc/js/jquery/jquery-1.4.2.min.js"></script>
<script type="text/javascript">
function link(){
var oDiv = document.getElementById("rtl");
var links = oDiv.getElementsByTagName("a");

for(var i=0;i<links.length;i++){
links[i].onclick = function(){popup(links[i]);};
break;
}
}

function popup($links){
if($links){
var $name = "Présidentielles 2012 - RTL.fr";
var largeur = "620px";
var hauteur = "560px";
var defilement = "yes";
var nPosX = (screen.width) ? (screen.width-largeur)/2 : 0;
var nPosY = (screen.height) ? (screen.height-hauteur)/2 : 0;
var $option = 'width='+largeur+',height='+hauteur+',top='+nPosX+',left='+nPosY+',scrollbars='+defilement+',resizable=no';
var Popup = window.open($links,$name,$option);
if (window.focus) {Popup.focus();}
$links.setAttribute("href","");
//delete $links;
return false;
}
}
</script>
</head>
<body onload="link();">
<div id="rtl">
<a href="test1.htm">Lien 1</a><br/><br/>
<a href="test2.htm">Lien 2</a><br/><br/>
<a href="test3.htm">Lien 3</a><br/><br/>
</di>
<div id="test">
<a href="test4.htm">Lien 1</a><br/><br/>
<a href="test4.htm">Lien 2</a><br/><br/>
<a href="test4.htm">Lien 3</a><br/><br/>
</div>
</body>
</html>

Thanks for your help

4

2 に答える 2

2

削除するbreak;と役立つと思いますか?

于 2011-04-22T10:25:08.390 に答える
0

前述のように、ブレークを削除する必要があります。

ただし、変数 i のスコープについても考慮する必要があります。

問題は、i が 6 まで配置され、その後、存在しないリンク [6] にインデックスが付けられたときに、最初のリンクで人為的に解決されたブレークを挿入することです。

以下は、当面の問題を解決します。

links[i].onclick =
    function() { var idx=i; return function(){ popup(links[idx]);} }();

元のコードをすべて維持しながら。

于 2011-04-22T10:42:35.890 に答える