In example of events chapter, for an outer element1 and inner element2 when I click on element2 there is an event bubbling from element2 to element1.
So I don't understand why in our case if I click on a.href (inner element) tr.onclick (outer element) will be processed first in IE6. GojiraDeMonstah wrote: > > I found this online book excerpt helpful and interesting: > http://www.quirksmode.org/js/contents.html , especially the events > chapter. > > Jason > <http://www.quirksmode.org/js/events_advanced.html> > > > On 12/28/06, kkus <[EMAIL PROTECTED]> wrote: >> >> >> I don't think <tr> is processed first. will be processed first and it >> will >> trigger onclick event when href link is clicked. Since IE6 only supports >> event bubbling, it will get its ancestor's onclick event. Ancestor's >> onclick >> is then processed like opening a new link as JavaScript code instructs, >> then >> return false which will prevent its descendant's default action from >> occurring - in this case to open its link. >> >> If you really want to prevent an event from bubbling, you has to assign >> cancelBubble=true to that event. Return false can only prevent event's >> default action from happening. >> >> >> melinate wrote: >> > >> > Basically you are clicking the row (the TR element) and the anchor (A) >> > at the same time.. well not really at the same time the TR is getting >> > processed first, but it only takes one physical click of the mouse to >> > trigger both events. By adding the "return false" you are telling the >> > browser to stop processing the additional events. So basically the >> > method below does the following when someone clicks anywhere on the TR: >> > >> > get the first cell of the row >> > get the link out of the first cell in the row >> > navigate the browser to that link >> > set the cursor to "wait" until the new page loads >> > stop processing any additional event listeners triggered by the >> click >> > >> > This is an over simplification of what event bubbling is, but I think >> > you get the idea. >> > >> > >> > Nathan >> > >> > kkus wrote: >> >> It works after I added return false at the bottom of event method(see >> >> below). >> >> But curiously, how come can this row event be ignored if I clicked on >> an >> >> anchor tag, and "return false" doesn't prevent row event's default >> action >> >> from firing if clicking in a row? Is anchor tag event "overriding" row >> >> event? >> >> >> >> rows[i].onclick = function() { >> >> var cell = this.getElementsByTagName("td")[0]; >> >> var link = cell.getElementsByTagName("a")[0]; >> >> location.href = link.getAttribute("href"); >> >> this.style.cursor="wait"; >> >> return false; >> >> } >> >> >> >> >> >> melinate wrote: >> >> >> >>> This whole thing just started making a lot of sense... Now that it >> is >> >>> isolated to the being a combination of the anchor tag and the JS >> onclick >> >>> method. >> >>> >> >>> If adding "return false" to the bottom of that JS method works, could >> >>> you add a bug report in JIRA about it. >> >>> >> >>> Nathan >> >>> >> >>> >> >>> Sanjiv Jivan wrote: >> >>> >> >>>> Like I said in my previous mail, the onclick handler should be >> >>>> returning 'false' in order to prevent both, the onclick handler and >> >>>> the ahref being called. >> >>>> >> >>>> I think this js function makes the entire row "act" like a clickable >> >>>> URL. It should be returning 'false' though. >> >>>> >> >>>> >> >>>> >> >>>> On 12/27/06, *kkus* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> >> >>>> wrote: >> >>>> >> >>>> >> >>>> The problem lies in highlightTableRows() in global.js. If I >> >>>> commented out >> >>>> following code in that method, there is only one request fired. >> Is >> >>>> that a >> >>>> bug? Or why do we need this piece of code? >> >>>> >> >>>> rows[i].onclick = function() { >> >>>> var cell = this.getElementsByTagName("td")[0]; >> >>>> var link = cell.getElementsByTagName("a")[0]; >> >>>> location.href = link.getAttribute("href"); >> >>>> this.style.cursor="wait"; >> >>>> } >> >>>> >> >>>> >> >>>> kkus wrote: >> >>>> > >> >>>> > By disabling javascript in IE6, I can see only one GET >> request. >> >>>> But >> >>>> > haven't figured out where the responsible javascript is. >> >>>> > >> >>>> > >> >>>> > Sanjiv Jivan wrote: >> >>>> >> >> >>>> >> Try directly entering the url in the browser and see if >> you're >> >>>> still >> >>>> >> getting >> >>>> >> two requests. That way you can see if displaytag has anything >> >>>> to do with >> >>>> >> it. >> >>>> >> Enter the url that disaplytag is issuing (is it calling >> >>>> /user/a.html or >> >>>> >> /editUser.html?) >> >>>> >> >> >>>> >> >> >>>> >> On 12/26/06, kkus < [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]>> wrote: >> >>>> >>> >> >>>> >>> >> >>>> >>> I commented out both rewriteFilter and exportFilter in >> >>>> web.xml, but I >> >>>> >>> still >> >>>> >>> get the same two requests. Not sure why it only happens in >> >>>> editUser >> >>>> >>> action >> >>>> >>> with displaytag. BTW, why do we need urlwriter.xml file as >> >>>> below? >> >>>> >>> >> >>>> >>> <urlrewrite> >> >>>> >>> <rule> >> >>>> >>> <from>^/user/(.*).html$</from> >> >>>> >>> <to type="forward">/editUser.html\?username=$1</to> >> >>>> >>> </rule> >> >>>> >>> </urlrewrite> >> >>>> >>> >> >>>> >>> >> >>>> >>> Sanjiv Jivan wrote: >> >>>> >>> > >> >>>> >>> > I'm thinking that the app is doing a redirect, probably >> >>>> because of one >> >>>> >>> of >> >>>> >>> > the servlet filters. >> >>>> >>> > >> >>>> >>> > On 12/26/06, kkus < [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]>> wrote: >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> >> After I used Fiddler, I can still see two requests issued >> >>>> when code >> >>>> >>> >> stopped >> >>>> >>> >> in FrameworkSevlet breakpoint. Following are two request >> >>>> headers from >> >>>> >>> >> Fiddler. The only difference is second one has a referer, >> >>>> and I still >> >>>> >>> >> can't >> >>>> >>> >> tell the source sending these two requests. Any idea? >> >>>> >>> >> >> >>>> >>> >> 1. >> >>>> >>> >> GET /appfuse/editUser.html?username=a&from=list HTTP/1.1 >> >>>> >>> >> Accept: image/gif, image/x-xbitmap, image/jpeg, >> image/pjpeg, >> >>>> >>> >> application/x-shockwave-flash, application/vnd.ms-excel, >> >>>> >>> >> application/vnd.ms-powerpoint, application/msword, */* >> >>>> >>> >> Accept-Language: en-us >> >>>> >>> >> Accept-Encoding: gzip, deflate >> >>>> >>> >> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT >> >>>> 5.1; SV1; >> >>>> >>> .NET >> >>>> >>> >> CLR >> >>>> >>> >> 1.1.4322) >> >>>> >>> >> Host: localhost:8008 >> >>>> >>> >> Proxy-Connection: Keep-Alive >> >>>> >>> >> Cookie: username=a; >> >>>> JSESSIONID=F9764F1BEEE98A5B8503FD27835A9EB7; >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE=YToxMTY4Mzc5MDEzMTIyOmYyZTQ1MjY0YWEzNTgxZTg5ZjFjYTkxMjY3OWYyNGNj >> >>>> >>> >> >> >>>> >>> >> 2. >> >>>> >>> >> GET /appfuse/editUser.html?username=a&from=list HTTP/1.1 >> >>>> >>> >> Accept: image/gif, image/x-xbitmap, image/jpeg, >> image/pjpeg, >> >>>> >>> >> application/x-shockwave-flash, application/vnd.ms-excel, >> >>>> >>> >> application/vnd.ms-powerpoint, application/msword, */* >> >>>> >>> >> Referer: >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> http://localhost:8008/appfuse/users.html;jsessionid=B3B335082176A4F176F0A6BD328F57F4 >> >>>> >>> >> Accept-Language: en-us >> >>>> >>> >> Accept-Encoding: gzip, deflate >> >>>> >>> >> User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT >> >>>> 5.1; SV1; >> >>>> >>> .NET >> >>>> >>> >> CLR >> >>>> >>> >> 1.1.4322) >> >>>> >>> >> Host: localhost:8008 >> >>>> >>> >> Proxy-Connection: Keep-Alive >> >>>> >>> >> Cookie: username=a; >> >>>> JSESSIONID=F9764F1BEEE98A5B8503FD27835A9EB7; >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE=YToxMTY4Mzc5MDEzMTIyOmYyZTQ1MjY0YWEzNTgxZTg5ZjFjYTkxMjY3OWYyNGNj >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> >> Sanjiv Jivan wrote: >> >>>> >>> >> > >> >>>> >>> >> > All decent debuggers have a Call Stack / Frame view >> which >> >>>> allows >> >>>> >>> you >> >>>> >>> to >> >>>> >>> >> > trace the sequence of methods that led to the current >> >>>> call being >> >>>> >>> made. >> >>>> >>> >> So >> >>>> >>> >> > by >> >>>> >>> >> > examining the higher order call stacks, you should be >> able >> >>>> to >> >>>> >>> figure >> >>>> >>> >> out >> >>>> >>> >> > why >> >>>> >>> >> > the calls are being made twice. Which IDE / debugger >> are >> >>>> you using? >> >>>> >>> >> > >> >>>> >>> >> > Is the request being made by a javascript onclick call >> >>>> which does >> >>>> >>> not >> >>>> >>> >> > return >> >>>> >>> >> > false causing the request to be submitted twice? Try >> >>>> running >> >>>> >>> Fiddler >> >>>> >>> to >> >>>> >>> >> > confirm that the request is being issued only once. >> Once >> >>>> you've >> >>>> >>> ruled >> >>>> >>> >> that >> >>>> >>> >> > out, examine the call stack to narrow down the issue. >> >>>> >>> >> > >> >>>> >>> >> > Sanjiv >> >>>> >>> >> > >> >>>> >>> >> > On 12/22/06, kkus <[EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]>> wrote: >> >>>> >>> >> >> >> >>>> >>> >> >> >> >>>> >>> >> >> When breakpoint was hit, I checked request field and >> >>>> both have the >> >>>> >>> >> same >> >>>> >>> >> >> session id and seems identical. What specific object >> or >> >>>> variable >> >>>> >>> do >> >>>> >>> >> you >> >>>> >>> >> >> want >> >>>> >>> >> >> me to check? >> >>>> >>> >> >> >> >>>> >>> >> >> >> >>>> >>> >> >> Sanjiv Jivan wrote: >> >>>> >>> >> >> > >> >>>> >>> >> >> > Examine the call stack in your debugger when the >> >>>> breakpoints are >> >>>> >>> >> hit. >> >>>> >>> >> >> > >> >>>> >>> >> >> > On 12/22/06, kkus <[EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]>> wrote: >> >>>> >>> >> >> >> >> >>>> >>> >> >> >> >> >>>> >>> >> >> >> In 1.9.4 Spring MVC, I put a breakpoint at doGet() >> of >> >>>> >>> >> >> >> FrameworkServlet.java. >> >>>> >>> >> >> >> Then in Administration - View Users page I clicked >> a >> >>>> link for a >> >>>> >>> >> user >> >>>> >>> >> >> then >> >>>> >>> >> >> >> there are two threads stopping at the same >> >>>> breakpoint. It seems >> >>>> >>> >> only >> >>>> >>> >> >> >> happen >> >>>> >>> >> >> >> in displaytag or only for Get request. How can I >> >>>> debug the root >> >>>> >>> >> cause >> >>>> >>> >> >> for >> >>>> >>> >> >> >> sending same request twice? Thanks! >> >>>> >>> >> >> >> -- >> >>>> >>> >> >> >> View this message in context: >> >>>> >>> >> >> >> >> >>>> >>> >> >> >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8029262 >> >>>> >> >>>> < >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8029262 >> > >> >>>> >>> >> >> >> Sent from the AppFuse - User mailing list archive >> at >> >>>> >>> Nabble.com <http://Nabble.com>. >> >>>> >>> >> >> >> >> >>>> >>> >> >> >> >> >>>> >>> >> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> >>> >> >> >> To unsubscribe, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >> >> For additional commands, e-mail: >> >>>> >>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >> >> >> >>>> >>> >> >> >> >> >>>> >>> >> >> > >> >>>> >>> >> >> > >> >>>> >>> >> >> >> >>>> >>> >> >> -- >> >>>> >>> >> >> View this message in context: >> >>>> >>> >> >> >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8029490 >> >>>> >> >>>> < >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8029490 >> > >> >>>> >>> >> >> Sent from the AppFuse - User mailing list archive at >> >>>> Nabble.com <http://Nabble.com>. >> >>>> >>> >> >> >> >>>> >>> >> >> >> >>>> >>> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> >>> >> >> To unsubscribe, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >> For additional commands, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >> >> >>>> >>> >> >> >> >>>> >>> >> > >> >>>> >>> >> > >> >>>> >>> >> >> >>>> >>> >> -- >> >>>> >>> >> View this message in context: >> >>>> >>> >> >> >>>> >>> >> >>>> >> >>>> >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8057366 >> >>>> >>> >> Sent from the AppFuse - User mailing list archive at >> >>>> Nabble.com <http://Nabble.com>. >> >>>> >>> >> >> >>>> >>> >> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> >>> >> To unsubscribe, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> For additional commands, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >> >>>> >>> >> >> >>>> >>> > >> >>>> >>> > >> >>>> >>> >> >>>> >>> -- >> >>>> >>> View this message in context: >> >>>> >>> >> >>>> >> >>>> >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8059518 >> >>>> >>> Sent from the AppFuse - User mailing list archive at >> >>>> Nabble.com <http://Nabble.com> . >> >>>> >>> >> >>>> >>> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> >>> To unsubscribe, e-mail: >> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> For additional commands, e-mail: >> >>>> [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >>> >> >>>> >>> >> >>>> >> >> >>>> >> >> >>>> > >> >>>> > >> >>>> >> >>>> -- >> >>>> View this message in context: >> >>>> >> >>>> >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8064836 >> >>>> >> >>>> < >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8064836 >> > >> >>>> Sent from the AppFuse - User mailing list archive at Nabble.com >> >>>> <http://Nabble.com>. >> >>>> >> >>>> >> >>>> >> --------------------------------------------------------------------- >> >>>> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> For additional commands, e-mail: [EMAIL PROTECTED] >> >>>> <mailto:[EMAIL PROTECTED]> >> >>>> >> >>>> >> >>>> >> >>> --------------------------------------------------------------------- >> >>> To unsubscribe, e-mail: [EMAIL PROTECTED] >> >>> For additional commands, e-mail: [EMAIL PROTECTED] >> >>> >> >>> >> >>> >> >>> >> >> >> >> >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: [EMAIL PROTECTED] >> > For additional commands, e-mail: [EMAIL PROTECTED] >> > >> > >> > >> >> -- >> View this message in context: >> http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8080566 >> Sent from the AppFuse - User mailing list archive at Nabble.com. >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/tough-question%3A-doGet-request-fired-twice-in-displaytag-tf2872720s2369.html#a8081661 Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
