Links in bubble titles not working in IE

30 views
Skip to first unread message

Th3GMan

unread,
Jun 11, 2009, 12:10:21 PM6/11/09
to SIMILE Widgets
Hello all,

I've seen this problem posted a couple of times, but also saw that no
one seemed to get it resolved.

The bubble title links work in Firefox, Chrome, etc...but not in IE7
or IE8. We can't seem to track down the cause, but it's quite a
problem (this being a state agency website and all).

If you go here in IE:
http://www.twdb.state.tx.us/stimulus/cwsrf_new2.htm

and scroll back to the left just a bit and click on "TWDB places draft
CWSRF IUP on agency ARRA website"
You will see a link in the bubble title.
Click on it...bubble closes, nothing happens.

At a total loss on this issue.

Code behind it:
<event start="May 15 2009 12:00:00 GMT-0600"
title="TWDB places draft CWSRF IUP on agency ARRA website."
link="/stimulus/documents/draft_ARRA_CWIUP.pdf"
>
TWDB places draft CWSRF IUP on agency ARRA website (5/15/09).
</event>

Jonas Wagner

unread,
Jun 12, 2009, 4:27:08 AM6/12/09
to simile-...@googlegroups.com
Hello unnamed poster,

From what I see on your page, it looks to me that the bubble is closed
before IE handles the click on the link. Maybe there is a problem with
the way Simile closes popups when the user clicks on the page?

Have a look at SimileAjax.WindowManager.cancelPopups in
<timeline>/src/ajax/api/scripts/window-manager.js

Maybe there's a problem when testing whether the click is inside an
element? What happens if you disable that function?

Hope this brings you a step closer to finding the error,
Jonas

Th3GMan

unread,
Jun 12, 2009, 12:57:03 PM6/12/09
to SIMILE Widgets
Hello Jonas,

I gave that a go, but no luck.

Here is something interesting we discovered...if we move the timeline
to the top of the page, the links work suddenly:
http://www.twdb.state.tx.us/stimulus/cwsrf.htm

Yet the code between here:
http://www.twdb.state.tx.us/stimulus/cwsrf_new2.htm
and on top:
http://www.twdb.state.tx.us/stimulus/cwsrf.htm

Is EXACTLY the same...it's not inside any other <div> tags or
anything. The only difference is it is simply at the bottom of the
code inside <body> versus at the top of the code inside <body>.

What the?!!?

Thanks,
Dave

Jonas Wagner

unread,
Jun 13, 2009, 7:29:48 AM6/13/09
to simile-...@googlegroups.com
Hello Dave,

> I gave that a go, but no luck.

So the bubble does not close, but the link still doesn't work? That's
indeed strange...

> Here is something interesting we discovered...if we move the timeline
> to the top of the page, the links work suddenly:
> http://www.twdb.state.tx.us/stimulus/cwsrf.htm

That's an interesting observation. It leads me to the thought that
scrolling could lead to the problem. Does it work if you put the
timeline not at the beginning of the page, but high enough so that no
scrolling is necessary to see it?

This would also be a hint that some javascript which calculates a
position is involved... this is quite a hard thing to do correctly, and
scrolling further complicates the fact.

Have a nice weekend,
Jonas

Th3GMan

unread,
Jun 15, 2009, 12:01:28 PM6/15/09
to SIMILE Widgets
Jonas,

The bubble does close, but the link doesn't work. Nothing happens
(except for the bubble closing).

I'll try moving the timeline above the fold, and see if scrolling is
what is causing the issue.

Thanks,
Dave

Th3GMan

unread,
Jun 15, 2009, 12:18:25 PM6/15/09
to SIMILE Widgets


On Jun 15, 11:01 am, Th3GMan <soylentgree...@gmail.com> wrote:
> Jonas,
>
> The bubble does close, but the link doesn't work. Nothing happens
> (except for the bubble closing).
>
> I'll try moving the timeline above the fold, and see if scrolling is
> what is causing the issue.

Well...tested...and that is definitely the case. If I move the
timeline up to just barely above the fold...where I don't have to
scroll...the links in the bubbles work just like they are supposed to.
Move it down right under the fold, and scroll....they don't work

Any ideas on how this might be fixed?

Jonas Wagner

unread,
Jun 15, 2009, 2:34:10 PM6/15/09
to simile-...@googlegroups.com
Hi Dave,

> The bubble does close, but the link doesn't work.

So I think we've narrowed down the problem now:

1. There is code which closes the bubble but shouldn't (because the
click is inside the bubble).
2. The code fails to compute the click position correctly because the
scroll offset is not taken into account.

I really think the bug is somewhere close to
SimileAjax.WindowManager.cancelPopups(). To confirm this, it would be
good if you could override that function (make it do nothing, so the
bubbles do not close) and check whether the link works.

For me, it's difficult to investigate further because I'm running IE
only emulated on my linux box and don't have access to javascript
debugging except firebug lite. Any other motivated IE-user out there?

Best,
Jonas

Th3GMan

unread,
Jun 16, 2009, 2:27:10 PM6/16/09
to SIMILE Widgets
You may have to guide me a bit on this, I tried making it do nothing,
but nothing seemed to change.

Then again, I'm not the greatest with this code.

Let me know what you think I should put in its place, and I'll see if
that works...though I find it odd that I removed the code and the
popups still canceled.

CalvinHobbs

unread,
Jun 16, 2009, 6:05:47 PM6/16/09
to SIMILE Widgets
I'm having this same issue, and I tried commenting out the code inside
the SimileAjax.WindowManager.cancelPopups() and it does the same as
what Dave was saying.

Jonas Wagner

unread,
Jun 17, 2009, 5:18:51 PM6/17/09
to simile-...@googlegroups.com
Hello,

in principle, Javascript allows you to override any method of an object.
You just have to include the javascript code that does it *after* you
include the timeline code. The important thing here is that you don't
have to modify the timeline code; instead you can override it.

In your case, you might write the following:

SimileAjax.WindowManager.cancelPopups = function() {}

to disable closing popups. I've tested this on IE using firebug lite,
and it effectively makes the pdf link work. Here are some step-by-step
instructions:

1) go to http://getfirebug.com/lite.html
2) Follow the "Firebug Lite as bookmarklet" instructions
3) Visit your site http://www.twdb.state.tx.us/stimulus/cwsrf_new2.htm
4) Click on the Firebug lite bookmark. The firebug console should be
displayed.
5) Open the "console" tab in firebug, if it's not open yet
6) At the >> prompt, enter "SimileAjax.WindowManager.cancelPopups =
function() {}" (without the quotes) and press enter
7) You bubbles should now not close anymore
8) You should now be able to access your link.

Now this is just the first step of the solution, because I think bubbles
should close after all... but fixing that javascript code is beyond what
I'd like to do for IE users.

Does this work?
Jonas

CalvinHobbs

unread,
Jun 17, 2009, 6:58:05 PM6/17/09
to SIMILE Widgets
I've been extremely interested in this, so I tried this on my site and
it works in IE 7 and 8. I can try it on 6 when I return back to work
and get on my Development machine.
For what its worth, the Close button still works on the bubble so the
user still has a means to close the bubble.

On Jun 17, 2:18 pm, Jonas Wagner <j....@gmx.ch> wrote:
> Hello,
>
> in principle, Javascript allows you to override any method of an object.
> You just have to include the javascript code that does it *after* you
> include the timeline code. The important thing here is that you don't
> have to modify the timeline code; instead you can override it.
>
> In your case, you might write the following:
>
> SimileAjax.WindowManager.cancelPopups = function() {}
>
> to disable closing popups. I've tested this on IE using firebug lite,
> and it effectively makes the pdf link work. Here are some step-by-step
> instructions:
>
> 1) go tohttp://getfirebug.com/lite.html
> 2) Follow the "Firebug Lite as bookmarklet" instructions
> 3) Visit your sitehttp://www.twdb.state.tx.us/stimulus/cwsrf_new2.htm

Th3GMan

unread,
Jun 18, 2009, 9:50:48 AM6/18/09
to SIMILE Widgets
How were you able to edit our simile-ajax-bundle.js file?

The code has changed to what you say below, and I didn't make the
change. This is extremely worrysome to say the least.

Second, the popups still close and the link doesn't work in IE8. Not
sure of IE7 or IE6.

This is now the code that is there:
SimileAjax.WindowManager.cancelPopups=function(){};
var E=SimileAjax.WindowManager._layers.length-1;
while(E>0&&SimileAjax.WindowManager._layers[E].ephemeral){var
D=SimileAjax.WindowManager._layers[E];
if(D.elmt!=null){var C=D.elmt;
var B=SimileAjax.DOM.getPageCoordinates(C);
if(F.x>=B.left&&F.x<(B.left+C.offsetWidth)&&F.y>=B.top&&F.y<(B.top
+C.offsetHeight)){break;
}}E--;
}SimileAjax.WindowManager._popToLayer(E);
};
SimileAjax.WindowManager._onBodyMouseDown=function(B,A,C){if(!
("eventPhase" in A)||A.eventPhase==A.BUBBLING_PHASE)
{SimileAjax.WindowManager.cancelPopups(A);
}};

I have no idea what code should be in the first line normally, as I
don't have a backup of that file. I'll have to go download the .js
file again so that I have it if I need to replace it.


On Jun 17, 4:18 pm, Jonas Wagner <j....@gmx.ch> wrote:
> Hello,
>
> in principle, Javascript allows you to override any method of an object.
> You just have to include the javascript code that does it *after* you
> include the timeline code. The important thing here is that you don't
> have to modify the timeline code; instead you can override it.
>
> In your case, you might write the following:
>
> SimileAjax.WindowManager.cancelPopups = function() {}
>
> to disable closing popups. I've tested this on IE using firebug lite,
> and it effectively makes the pdf link work. Here are some step-by-step
> instructions:
>
> 1) go tohttp://getfirebug.com/lite.html
> 2) Follow the "Firebug Lite as bookmarklet" instructions
> 3) Visit your sitehttp://www.twdb.state.tx.us/stimulus/cwsrf_new2.htm

CalvinHobbs

unread,
Jun 18, 2009, 10:52:42 AM6/18/09
to SIMILE Widgets
If you put <script>SimileAjax.WindowManager.cancelPopups = function()
{};</script> as the last entry in the <head> tag that will essentially
do the same thing that Jonas said to do with firebug lite.

Jonas Wagner

unread,
Jun 18, 2009, 1:20:23 PM6/18/09
to simile-...@googlegroups.com
Hello,

> If you put <script>SimileAjax.WindowManager.cancelPopups = function()
> {};</script> as the last entry in the <head> tag that will essentially
> do the same thing that Jonas said to do with firebug lite.

Thanks, that's exactly what I meant ;)

>> How were you able to edit our simile-ajax-bundle.js file?

As I tried to point out, you don't edit any timeline file. Instead, you
add your changes in another file (or script tag, as above).

Best,
Jonas

Th3GMan

unread,
Jun 19, 2009, 1:56:39 PM6/19/09
to SIMILE Widgets
Yep, I did what you and Calvin suggested above, and it has fixed the
issue.

I'm just trying to find out how someone was able to edit the simile-
ajax-bundle.js file on our server. It's a bit of a huge concern!
Reply all
Reply to author
Forward
0 new messages