There is a "bug" in wicket-ajax.js:268 (1.4.1) that breaks
IE+Flash/ExternalInterface:
// place all newly created elements before the old element
while(tempParent.childNodes.length > 0) {
var tempElement = tempParent.childNodes[0];
>>>>> tempParent.removeChild(tempElement); <<<<<
parent.insertBefore(tempElement, element);
tempElement = null;
}
Calling removeChild is not needed because insertBefore moves element from its
original place.
If you remove "removeChild" line and check "tempParent.childNodes.length" you
can see that it is
decreased by one after "insertBefore".
This "removeChild" breaks Flash/ExternalInterface in IE. If "removeChild" is
removed then everything
works fine. IE is more strict here than other browsers.
Demonstration is still at (there is no need for Flash CS4 to test this)
http://download.syncrontech.com/public/quickstart_noname.zip
Could someone confirm this and suggest how to proceed ?
-Heikki
-----Original Message-----
From: Heikki Uotinen [mailto:[email protected]]
Sent: 7. syyskuuta 2009 9:21
To: [email protected]
Subject: RE: Flash/ExternalInterface does not work in IE if movie is fetched
via Wicket/Ajax
There is a problem with IE/ExternalInterface if movie is added to DOM f.ex
appendChild
JavaScript functions are called but they do not return any value.
This is clearly MS problem but could IE specific function in wicket-ajax.js be
adjusted somehow ?
Simple test case has
var flashMovie = '<OBJECT id="testId" codeBase="http://fpdownload..
// Works in IE and FF
document.getElementById("testdiv").innerHTML = flashMovie;
// ExternalInterface.call calls JS but does not return value in IE.
Works in FF
var tempDiv = document.createElement("div");
tempDiv.innerHTML = flashMovie;
document.body.appendChild(tempDiv);
Here is complete code (ajax.swf can be found in zip files)
http://pastebin.com/fbc0aa9a
Here is AS3 code in ajax.fla
http://pastebin.com/d4efd47b
-Heikki
-----Original Message-----
From: Mikko Pukki [mailto:[email protected]]
Sent: 4. syyskuuta 2009 15:33
To: [email protected]
Subject: Flash/ExternalInterface does not work in IE if movie is fetched via
Wicket/Ajax
Hi,
This example demonstrates that ExternalInterface fails with IE only if movie is
fetched via Wicket/Ajax.
ajaxtest.zip:
(http://download.syncrontech.com/public/ajaxtest.zip)
Page "first.html" fetches "second.html" page via Ajax. Second.html has Flash
movie
that calls JavaScript methods with ExternalInterface and produces output
"Start..."
"ExternalInterface.available:true"
"ExternalInterface.objectID:testId"
"fromJs:text from js (first.html)"
This works both FF 3.5 and IE 7/IE8
quickstart_noname.zip:
(http://download.syncrontech.com/public/quickstart_noname.zip)
Same demonstration with wicket. This fails with IE
"Start..."
"ExternalInterface.available:true"
"ExternalInterface.objectID:null"
"fromJs:null"
ObjectId is null and JavaScript call does not return any value.
We are aware about EI/IE problems in past, but any of those does not seem to
fit here.
Wicket 1.4.1, Flash Player 10, IE 7/8, FF 3.5
Has anyone encountered any similar behavior and/or has found any workaround?
Should I create a Jira issue?
------------------
Mikko Pukki
Syncron Tech Oy
Laserkatu 6
53850 Lappeenranta
+358 400 757 178
---------------------------------------------------------------------
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]