Hi,

Could someone answer my questions below...?

I found that Ajax function of jQuery doesn't work with Opera Mobile
8.7(on Advanced [es] W-ZERO3), and I added a workaround for this
problem to jQuery code as follows. Then it worked on the platform.

--- jquery-1.2.3.orig.js        2008-05-16 16:19:36.000000000 +0900
+++ jquery-1.2.3.modified.js    2008-05-16 17:28:49.000000000 +0900
@@ -2658,9 +2658,7 @@

                var requestDone = false;

-               // Create the request object; Microsoft failed to properly
-               // implement the XMLHttpRequest in IE7, so we use the 
ActiveXObject
when it is available
-               var xml = window.ActiveXObject ? new
ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
+               var xml = window.XMLHttpRequest ? new XMLHttpRequest() : new
ActiveXObject("Microsoft.XMLHTTP");

                // Open the socket
                xml.open(s.type, s.url, s.async, s.username, s.password);

It seems that Opera Mobile 8.7 supports window.ActiveXObject, but it
doesn't not support ActiveXObject("Microsoft.XMLHTTP"). So creation of
XMLHttpRequest instance seems to be failed.

Q1. I think that ActiveXObject is not only for XMLHTTP, so just
checking the existence of ActiveXObject is not enough. Is there any
reason that jQuery doesn't verify that the instance is created
properly when creating the request object?

Q2. Is there any way to solve this problem without modification of
jQuery code?

-- My Test page used for this --
[HTML file]
<html>
<head>
  <title>jQuery test</title>
  <script type="text/javascript" src="./jquery.js"></script>
  <script type="text/javascript">
    $(document).ready(function(){
      $('#target').load('./test.txt');
    });
  </script>
</head>
<body>
result: <b id="target">--</b><br />
</body>
</html>

[test.txt]
OK

--

Best Regards,
Takayoshi Fujiki

Reply via email to