Re: Re: focus() not working in IE when created by appendChild
liorean <[email protected]> Tue, 11 Sep 2007 12:36:41 +0200
| Newsgroups | gmane.comp.web.dom.wdf |
|---|---|
| Message-ID | <[email protected]> |
--VhBFFZEftU8nL0M5RtceHrLyegRxxZMqVBb1ucD Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 11/09/2007, Joseph Caprario <[email protected]> wrote: > That did the trick. I changed the setAttribute line to: > newSpan.onclick= function() {eval(win_name+".focus()");} > > I'm hoping the use of eval is ok. Some people don't seem to like it but it's the only way I > could get this to work when I put my addtomenu function in a loop and pass it new string > values for win_name. Better way of doing it: newSpan.onclick=function(winobj){ return function(ev){ ev=ev||event; winobj.focus(); }}(winobj); This saves a reference to the particular window object you pass in to the outer function in the closure for the inner function, so the inner function always refers to that particular window object in that particular event handler. -- David "liorean" Andersson --VhBFFZEftU8nL0M5RtceHrLyegRxxZMqVBb1ucD Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> </head> <body style="background-color: #ffffff;"> <!--~-|**|PrettyHtmlStartT|**|-~--> <div id="ygrp-mlmsg" style="width:655px; position:relative;"> <div id="ygrp-msg" style="width: 490px; padding: 0 15px 0 0; float:left; z-index:1;"> <!--~-|**|PrettyHtmlEndT|**|-~--> <div id="ygrp-text"> <p>On 11/09/2007, Joseph Caprario <<a href="mailto:joecap5%40comcast.net">joecap5@comcast.<wbr>net</a>> wrote:<br> > That did the trick. I changed the setAttribute line to:<br> > newSpan.onclick= function() {eval(win_name+<wbr>".focus()<wbr>");}<br> ><br> > I'm hoping the use of eval is ok. Some people don't seem to like it but it's the only way I<br> > could get this to work when I put my addtomenu function in a loop and pass it new string<br> > values for win_name.<br> <br> Better way of doing it:<br> <br> newSpan.onclick=<wbr>function(<wbr>winobj){<br> return function(ev)<wbr>{<br> ev=ev||event;<br> winobj.focus(<wbr>);<br> }}(winobj);<br> <br> This saves a reference to the particular window object you pass in to<br> the outer function in the closure for the inner function, so the inner<br> function always refers to that particular window object in that<br> particular event handler.<br> -- <br> David "liorean" Andersson<br> </p> </div> <!--~-|**|PrettyHtmlStart|**|-~--> <span width="1" style="color: white;">__._,_.___</span> <!-- Start the section with Message In topic --> <div id="ygrp-actbar"> <span class="left"> <a href="http://groups.yahoo.com/group/wdf-dom/message/5613;_ylc=X3oDMTM0cjFwZHZhBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzU2MTgEc2VjA2Z0cgRzbGsDdnRwYwRzdGltZQMxMTg5NTA3MDI1BHRwY0lkAzU2MTM-"> Messages in this topic </a> (<span class="bld">0</span>) </span> <a href="http://groups.yahoo.com/group/wdf-dom/post;_ylc=X3oDMTJwbGtpMTByBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBG1zZ0lkAzU2MTgEc2VjA2Z0cgRzbGsDcnBseQRzdGltZQMxMTg5NTA3MDI1?act=reply&messageNum=5618"> <span class="bld"> Reply </span> (via web post) </a> | <a href="http://groups.yahoo.com/group/wdf-dom/post;_ylc=X3oDMTJlMnZiNnU2BF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA250cGMEc3RpbWUDMTE4OTUwNzAyNQ--" class="bld"> Start a new topic </a> </div> <!------- Start Nav Bar ------> <!-- |**|begin egp html banner|**| --> <div id="ygrp-vitnav"> <a href="http://groups.yahoo.com/group/wdf-dom/messages;_ylc=X3oDMTJlbHVsaGE4BF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA21zZ3MEc3RpbWUDMTE4OTUwNzAyNQ--">Messages</a> </div> <!-- |**|end egp html banner|**| --> <div id="ygrp-grft"> </div> <!-- yahoo logo --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-ft"> <a href="http://groups.yahoo.com/;_ylc=X3oDMTJkdjFkdHZtBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2dmcARzdGltZQMxMTg5NTA3MDI1"> <img src="http://us.i1.yimg.com/us.yimg.com/i/yg/img/logo/ma_grp_160.gif" height="15" width="106" border="0" alt="Yahoo! Groups"></a> <br> <a href="http://groups.yahoo.com/group/wdf-dom/join;_ylc=X3oDMTJmcjlhZzEwBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA3N0bmdzBHN0aW1lAzExODk1MDcwMjU-">Change settings via the Web</a> (Yahoo! ID required) <br> Change settings via email: <a href="mailto:[email protected]?subject=Email Delivery: Digest">Switch delivery to Daily Digest</a> | <a href = "mailto:[email protected]?subject=Change Delivery Format: Traditional">Switch format to Traditional</a> <br> <a href="http://groups.yahoo.com/group/wdf-dom;_ylc=X3oDMTJkNDhodmRlBF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwNmdHIEc2xrA2hwZgRzdGltZQMxMTg5NTA3MDI1"> Visit Your Group </a> | <a href="http://docs.yahoo.com/info/terms/"> Yahoo! Groups Terms of Use </a> | <a href="mailto:[email protected]?subject="> Unsubscribe </a> </div> <!-- |**|end egp html banner|**| --> </div> <!-- ygrp-msg --> <!-- Sponsor --> <!-- |**|begin egp html banner|**| --> <div id="ygrp-sponsor" style="width:140px;float: left; clear: none; margin-left: 5px; background:white; margin-bottom:25px ;position:absolute; top:0; right: 0;"> <!-- Network content --> <!-- Start vitality --> <div id="ygrp-vital"> <a href="http://groups.yahoo.com/group/wdf-dom;_ylc=X3oDMTJldnFsdDE2BF9TAzk3MzU5NzE0BGdycElkAzI1NjQ1NjMEZ3Jwc3BJZAMxNzA1MDE2MDYxBHNlYwN2dGwEc2xrA3ZnaHAEc3RpbWUDMTE4OTUwNzAyNQ--"> Visit Your Group </a> </div> <!-- Network content --> <div id="nc"> <div class="ad"> <div id="hd1">Yahoo! Groups</div> <p><a href="http://us.ard.yahoo.com/SIG=12jmsv8pl/M=493064.11292562.11840176.8674578/D=groups/S=1705016061:NC/Y=YAHOO/EXP=1189514225/A=4836041/R=0/SIG=11o19ppl5/*http://advision.webevents.yahoo.com/dogzone/index.html">Dog Zone</a></p> <p>Connect w/others</p> <p>who love dogs.</p> </div> <div class="ad"> <div id="hd1">Fitness Zone</div> <p><a href="http://us.ard.yahoo.com/SIG=12jjo10ol/M=493064.11305689.11851548.8674578/D=groups/S=1705016061:NC/Y=YAHOO/EXP=1189514225/A=4840951/R=0/SIG=11n59vup4/*http://advision.webevents.yahoo.com/healthandfitness/">on Yahoo! Groups</a></p> <p>Find Groups all</p> <p>about healthy living.</p> </div> <div class="ad"> <div id="hd1">Yahoo! Groups</div> <p><a href="http://us.ard.yahoo.com/SIG=12j9nj6ff/M=493064.11135488.11710474.8674578/D=groups/S=1705016061:NC/Y=YAHOO/EXP=1189514225/A=4776365/R=0/SIG=11mj2s6kj/*http://advision.webevents.yahoo.com/green/index.html">Be a Better Planet</a></p> <p>Share with others</p> <p>Help the Planet.</p> </div> </div> </div> <!-- |**|end egp html banner|**| --> <div style="clear:both; color: #FFF; font-size:1px;">.</div> </div> <img src="http://geo.yahoo.com/serv?s=97359714/grpId=2564563/grpspId=1705016061/msgId=5618/stime=1189507025/nc1=4836041/nc2=4840951/nc3=4776365" width="1" height="1"> <br> <span style="color: white;">__,_._,___</span> <!--~-|**|PrettyHtmlEnd|**|-~--> </body> <!--~-|**|PrettyHtmlStart|**|-~--> <head> <style type="text/css"> <!-- #ygrp-mkp{ border: 1px solid #d8d8d8; font-family: Arial; margin: 14px 0px; padding: 0px 14px; } #ygrp-mkp hr{ border: 1px solid #d8d8d8; } #ygrp-mkp #hd{ color: #628c2a; font-size: 85%; font-weight: bold; line-height: 122%; margin: 10px 0px; } #ygrp-mkp #ads{ margin-bottom: 10px; } #ygrp-mkp .ad{ padding: 0 0; } #ygrp-mkp .ad a{ color: #0000ff; text-decoration: none; } --> </style> </head> <head> <style type="text/css"> <!-- #ygrp-sponsor #ygrp-lc{ font-family: Arial; } #ygrp-sponsor #ygrp-lc #hd{ margin: 10px 0px; font-weight: bold; font-size: 78%; line-height: 122%; } #ygrp-sponsor #ygrp-lc .ad{ margin-bottom: 10px; padding: 0 0; } --> </style> </head> <head> <style type="text/css"> <!-- #ygrp-mlmsg {font-size:13px; font-family: arial,helvetica,clean,sans-serif;*font-size:small;*font:x-small;} #ygrp-mlmsg table {font-size:inherit;font:100%;} #ygrp-mlmsg select, input, textarea {font:99% arial,helvetica,clean,sans-serif;} #ygrp-mlmsg pre, code {font:115% monospace;*font-size:100%;} #ygrp-mlmsg * {line-height:1.22em;} #ygrp-text{ font-family: Georgia; } #ygrp-text p{ margin: 0 0 1em 0; } #ygrp-tpmsgs{ font-family: Arial; clear: both; } #ygrp-vitnav{ padding-top: 10px; font-family: Verdana; font-size: 77%; margin: 0; } #ygrp-vitnav a{ padding: 0 1px; } #ygrp-actbar{ clear: both; margin: 25px 0; white-space:nowrap; color: #666; text-align: right; } #ygrp-actbar .left{ float: left; white-space:nowrap; } .bld{font-weight:bold;} #ygrp-grft{ font-family: Verdana; font-size: 77%; padding: 15px 0; } #ygrp-ft{ font-family: verdana; font-size: 77%; border-top: 1px solid #666; padding: 5px 0; } #ygrp-mlmsg #logo{ padding-bottom: 10px; } #ygrp-vital{ background-color: #e0ecee; margin-bottom: 20px; padding: 2px 0 8px 8px; } #ygrp-vital #vithd{ font-size: 77%; font-family: Verdana; font-weight: bold; color: #333; text-transform: uppercase; } #ygrp-vital ul{ padding: 0; margin: 2px 0; } #ygrp-vital ul li{ list-style-type: none; clear: both; border: 1px solid #e0ecee; } #ygrp-vital ul li .ct{ font-weight: bold; color: #ff7900; float: right; width: 2em; text-align:right; padding-right: .5em; } #ygrp-vital ul li .cat{ font-weight: bold; } #ygrp-vital a{ text-decoration: none; } #ygrp-vital a:hover{ text-decoration: underline; } #ygrp-sponsor #hd{ color: #999; font-size: 77%; } #ygrp-sponsor #ov{ padding: 6px 13px; background-color: #e0ecee; margin-bottom: 20px; } #ygrp-sponsor #ov ul{ padding: 0 0 0 8px; margin: 0; } #ygrp-sponsor #ov li{ list-style-type: square; padding: 6px 0; font-size: 77%; } #ygrp-sponsor #ov li a{ text-decoration: none; font-size: 130%; } #ygrp-sponsor #nc{ background-color: #eee; margin-bottom: 20px; padding: 0 8px; } #ygrp-sponsor .ad{ padding: 8px 0; } #ygrp-sponsor .ad #hd1{ font-family: Arial; font-weight: bold; color: #628c2a; font-size: 100%; line-height: 122%; } #ygrp-sponsor .ad a{ text-decoration: none; } #ygrp-sponsor .ad a:hover{ text-decoration: underline; } #ygrp-sponsor .ad p{ margin: 0; } o{font-size: 0; } .MsoNormal{ margin: 0 0 0 0; } #ygrp-text tt{ font-size: 120%; } blockquote{margin: 0 0 0 4px;} .replbq{margin:4} --> </style> </head> <!--~-|**|PrettyHtmlEnd|**|-~--> </html><!--End group email --> --VhBFFZEftU8nL0M5RtceHrLyegRxxZMqVBb1ucD--