Hi Rene,
I've spent some (more) time looking into this. Comments inline...
René Brouwer | wrks wrote:
If I take out the line
<script type="application/x-javascript" src="iui/iui.js"></script>
everything works fine.
So it's not all on fullscreen web-apps.
With the "iui/iui.js" script back, the problem is back.
iUI uses the JavaScript timer (setTimeout) which the mailto: link seems
to interfere with. I'm not sure what else mailto handling is messing up
in webkit or what can be done to fix it without loading the page.
I'd like to create a reduction
<http://webkit.org/quality/reduction.html> that doesn't use iUI (but
does use setTimeout() for example) This would narrow down the bug
enough to submit to the Apple Bug Reporter and might reveal a
workaround. I haven't had time to do this yet. (See below for a fairly
reduced .html file - the next steps would be to reduce/elminate iui.css
and most of iui.js)
So:
- No history problem
I agree, I don't think it is history related.
- No fullscreen web-app problem
Fullscreen is an entirely different case because it launches the
complete Mail app, right? When running in Mobile Safari it uses (I
assume) the Cocoa class MFMailComposeViewController which runs inside of
Safari.
- Problem appears to exist between whatever Apple is doing (focus?) and
"iui/iui.js"
I'm almost certain it's a Mobile Safari bug. Since iui.js requires a
working setTimeout() that is why the conflict occurs.
jqtouch seems to have fixed (or worked around) the same problem.
I read those issues (jQTouch Issue DB), too - and it wasn't clear to me
if they did anything specific to work around our specific problem. It
might be worth asking David Kaneda if he remembers anything about it.
The discussion in jQTouch issue #75
<http://code.google.com/p/jqtouch/issues/detail?id=75> is hard to follow
as different posters are talking about different issues. In the Apple
discussion thread there's an implication that using "3D transitions"
(with keyframe animation) rather than "2D Transitions" made the problem
go away, but that was for one specific app and it's not clear what else
changed between when it was broken and when it was fixed. Since I'm
seeing problems with setTimeout in my debugging/tracing, I'm reluctant
to make such a major change without further evidence that this is the
only/best way to fix the problem. The use of CSS transitions in iUI
works on a wide range of devices/OS versions/browsers and has been well
tested.
The error occurs even with the iui.animOn flag set to 'false'. In this
case no CSS transitions/animations are used, but setTimeout() is still
required. This also make me skeptical that 3D transitions/animations is
a viable solution.
Does any of this help?
Every little bit helps - thanks!
BTW, I've created an even smaller file that can be used to reproduce the
problem:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Hello</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta name="viewport" content="width=device-width,
minimum-scale=1.0, maximum-scale=1.6">
<meta name="apple-mobile-web-app-capable" content="YES">
<link rel="apple-touch-icon" href="Images/WebClipIcon.png">
<link rel="stylesheet" href="iui/iui.css">
<link rel="stylesheet" href="iui/t/default/default-theme.css">
<script type="text/javascript" src="iui/iui.js"
charset="utf-8"></script>
</head>
<body>
<div class="toolbar">
<h1 id="pageTitle"></h1>
<a id="backButton" class="button" href="#"></a>
</div>
<ul id="home" title="Minimal" selected="true">
<li><a href="mailto:[email protected]">Mailto</a></li>
<li><a href="#child">Nav Link</a></li>
</ul>
<ul id="child" title="Nav Child">
<li>Nothing to see here</li>
</ul>
</body>
</html>
-- Sean
--
You received this message because you are subscribed to the Google Groups
"iPhoneWebDev" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/iphonewebdev?hl=en.