> Yes, I downloaded the files and they look good. I will investigate
> this myself as your approach is terrific. FM is a very underestimated
> app. People think it's a toy, something it's definitely not. Please
> keep me up to date on this.
> 
> Best,

(oops hit send before completing message)

See notes below. Apparenty there it is possible that some small changes to
the Exhibit javascript could fix this.

To figure out the problem you need some debugging tools. The Exhibit
should work well on MS Windows, so, I suppose you are on a Mac, then
you can use Web Inspector. Make sure you have Safari 3.0 installed. I
believe, Web Inspector available in the latest WebKit only, which
installs along with Safari. Open Terminal app and perform the
following command:

defaults write com.filemaker.pro.advanced WebKitDeveloperExtras -bool
true

Now you can right-click in a Web Viewer to Inspect Element:

In fact, your issue appears only once per... a kind of WebKit
session, and FMP keeps last session open until you completely restart
it. If the first session (an external html file like the original
Exhibit examples) performs without error the next (data url) works
well too, and vs. So you should disable your FMP startup script and
make sure that your layout WEB is the first layout your see when you
open the file. Then you should restart FileMaker and open your file
again. The first time you switch to the tab Viewer it should show
failed page. You can right-click in the Web Viewer to call Web
Inspector and see errors description:

I believe this is a kind of bug in WebKit that produces Parse Error
at the very first line of all external javascripts if they referenced
from within a data url. It looks like WebKid just does not like line
break character (0x0A) in such a configuration at the session startup
only. If you launch a regular url (external html file), WebKit loads
external javascripts well and then processes data urls well too until
something caused WebKit to close or restart last session.

There are two ways to fix this start up problem: load some external
html file that has a reference to an external javascript at FMP start
up (like you currently do with your FMP startup script that arrives
at the the layout Exhibit), or switch to Dynamic Embedding method for
loading the Exhibit API:

http://simile.mit.edu/wiki/Exhibit/How_to_include_the_Exhibit_API

I've tested that javascript with your example file. It fixes the
Parsing Error at StartUp problem, but causes other issues with
loading the Exhibit Time-Extension API along with the Inline Data
Importer, so you probably should ask further help on this on the
Simile mailing list. Let me know if you got any solution from them.

Another issue is that when your Exhibit example (data url) is loaded
well the first time you click any link it fails, and when you click
your reload button the Exhibit stops working at all. This is caused
by the trick/hack they use to handle browser's Back/Forward buttons:

http://simile.mit.edu/wiki/Exhibit/Template/_history_.html

http://simile.mit.edu/issues/browse/TIMELINE-176

This feature does not work well on a Mac. First it tries to load the
file __history__.html but fails because that file doesn't exist, that
is why the first click fails. Then, it switches to the file
about:blank and further works well until you click your button
reload, which causes WebKit to restart the session and then fails
because of the Parse Error on StartUp problem.

If you don't need Back/Forward button simple disable this feature by
including the following line somewhere in the beginning of your
initialization javascript:

SimileAjax.History.enabled = false;

This should make your solution work stable.

HTH

Let me know if you find an other interesting Web Viewer compatible/
based tools or issues. I'm very interested in exploring this brand
new branch in FMP development.


-- 

Sincerely,


Alex_Z
CIS, Moscow
http://web.mac.com/zueiv/





_______________________________________________
General mailing list
[email protected]
http://simile.mit.edu/mailman/listinfo/general

Reply via email to