Archive for October, 2013

Trigger a script from a link in a web viewer

Since the introduction of the webviewer layout object back in version 8.5, folks have wanted a way to trigger a script by clicking a link in the webviewer.   Why?  Because the webviewer offers so many other ways to display and interact with data.  Here’s a practical example.  Let’s say you have a huge layout covered with fields.  Instead of making the user scroll around, or click tabs, or go to another layout, you want a spot where all the important data is nicely displayed and formatted.  No big deal.  You could do that with another field that combines the important fields into one text block.  Well, what if you wanted to click on a word or phrase in that text block to trigger a script that displays extra details?  You can’t apply a button action to a word in a text field.   But you can apply a hyperlink to a word in an HTML page.

If you google around, you’ll be told that you can’t trigger a script from an element in a webviewer without a plugin, or javascript, or an external html file, or a web server.  But you can.

I wrote a really nice description of the solution on FileMaker Forums, but the site wouldn’t accept any of the code for some reason.  Maybe a copyright thing, I don’t know.  I closed the post before I copied the description.  So I’m not going to rewrite it all here.

I will say that it involves using the “FMP://” hypertext prefix designed by FileMaker to launch a file and run a script from an external source like an email message or web site.  The trick to making it work within a web viewer is to know how host file paths work.

Here’s a teaser:

If you make a calc field called ‘path’ that does this…

“\”FMP://”&Get ( HostIPAddress )&”/”&Get(FileName)&”?script=hello&param=world\”"

and then a webviewer with address calculated to do this…

“data:text/html,
<html>
<body>
<a href=”
&
mydatabase::path
&
“>Run My Script</a>
</font></body></html>”

You’ll see a link in your webviewer that will run the hard coded named script along with a parameter.

Come to our next meeting for more about this solution.  Join the mailing list if you want to be reminded about the next meeting.

October 2013 Meeting Recap

October saw our lightest attendance to date – TWO enthusiasts – including the moderator.  Hey, it’s all good.  Tracy is normally very reserved, so enjoyed some valuable one on one attention to her issues.  I always said that if just one member shows up, or even nobody, that the meeting will still go on.  It’s about dedication and commitment.  You can’t develop a FileMaker database without committing to it and seeing it through no matter how hard or lonely it gets.   For me as a developer, the most enjoyable part of the job is listening to a user’s challenges.  Novice users speak in the most innocent and unassuming terms when describing what they want their database to do.  Every wish list item is an opportunity to  find the best solution.  I walked away from this meeting with the spark of an idea to a problem that’s been bothering me for years.  And the following day I solved it.  So October was one of the most enjoyable and rewarding meetings to date.  That’s not to say don’t show up, no no no.  It just means you get out of things what you put into them.