ICEfaces
  1. ICEfaces
  2. ICE-3354

ICEfaces components are unresponsive on IE after interaction with outputMedia/Flash component

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Duplicate
    • Affects Version/s: 1.6.2, 1.7
    • Fix Version/s: 1.7.2
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      All

      Description

      A simple Flash chart is being used with an outputMedia component. When the chart is clicked it alerts the user with a JavaScript alert. In IE7 when the chart is clicked the alert is shown but once the alert is closed all of the ICEfaces components on the page are unresponsive until a browser refresh occurs. This issue does not happen in FireFox. A sample application has been developed that shows this behavior in action. It uses the address demo application with the outputMedia component.

        Issue Links

          Activity

          Hide
          Deryk Sinotte added a comment -

          So this problem is an old friend and we need to document it somewhere more highly visible both internally (product support , developers) and externally (customers, users). Perhaps there is a programmatic solution as well - or at least some way we could log a warning. In any event, we've run into this several times, always under duress/panic and it can take a certain amount of work to find depending on where it's hiding.

          The datasets for their Flash graphing component look like this:

          <dataset seriesName='Talk Time' color='153E7E' ratio='100' alpha='100'>
          <set value='69.0' link="JavaScript:alert('Got here ... 1st bar!');" />
          </dataset>

          The goal is to to have an alert popup when you click on one of the bars in the graph. The problem is that with IE, when you use the javascript: protocol as an action for any kind of link, IE runs window.unload which, with ICEfaces, is bad because it unloads the client bridge. That's why things become unresponsive and that's why a reload of the page basically fixes it (the bridge is reloaded). Since I don't know the Flash graphing package in question, it's difficult to provide a workaround.

          1) They may be able to call the JavaScript in another way. Perhaps there is another attribute of the <set> tag that allows this.

          2) They could provide an actual link to a real pop-up window rather than use the javascript: protocol.

          Not sure if there is a way for us to figure out how window.unload is called. If we could detect that the javascript: protocol triggered it, maybe we could at least log a warning.

          Show
          Deryk Sinotte added a comment - So this problem is an old friend and we need to document it somewhere more highly visible both internally (product support , developers) and externally (customers, users). Perhaps there is a programmatic solution as well - or at least some way we could log a warning. In any event, we've run into this several times, always under duress/panic and it can take a certain amount of work to find depending on where it's hiding. The datasets for their Flash graphing component look like this: <dataset seriesName='Talk Time' color='153E7E' ratio='100' alpha='100'> <set value='69.0' link="JavaScript:alert('Got here ... 1st bar!');" /> </dataset> The goal is to to have an alert popup when you click on one of the bars in the graph. The problem is that with IE, when you use the javascript: protocol as an action for any kind of link, IE runs window.unload which, with ICEfaces, is bad because it unloads the client bridge. That's why things become unresponsive and that's why a reload of the page basically fixes it (the bridge is reloaded). Since I don't know the Flash graphing package in question, it's difficult to provide a workaround. 1) They may be able to call the JavaScript in another way. Perhaps there is another attribute of the <set> tag that allows this. 2) They could provide an actual link to a real pop-up window rather than use the javascript: protocol. Not sure if there is a way for us to figure out how window.unload is called. If we could detect that the javascript: protocol triggered it, maybe we could at least log a warning.
          Hide
          Deryk Sinotte added a comment -

          The original case where we document this issue is ICE-1915

          Show
          Deryk Sinotte added a comment - The original case where we document this issue is ICE-1915
          Hide
          Mircea Toma added a comment -

          I cannot figure out what is going on. The window.onunload or window.onbeforeunload events are not triggered when clicking on the graph bars.

          Show
          Mircea Toma added a comment - I cannot figure out what is going on. The window.onunload or window.onbeforeunload events are not triggered when clicking on the graph bars.

            People

            • Assignee:
              Unassigned
              Reporter:
              Arran Mccullough
            • Votes:
              13 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: