Very cool. Thanks Ryan, I was curious about this as well. Just curious but is it also possible to do the same with <body ondataload="myFunction"> and putting the same create.js code in there?
I also read that you can define a callback function in the url. Something like adding ?callback=myFunction. Or, add a callback function in the link when referencing exhibit-api.js. I would assume that the callback function would run after the exhibit code. Is this possible? - John Ryan Lee wrote: > SIMILE's loading is through jQuery. The route to it is the global > variable/method SimileAjax.jQuery(). > > To write your own onload method, you should attach ?autoCreate=false to > the <script> tag's src that loads in the Exhibit API. Then write your > own SimileAjax.jQuery(document).ready(...) handler that includes the > core of what's in the Exhibit create.js file. > > http://code.google.com/p/simile-widgets/source/browse/exhibit/trunk/src/webapp/api/scripts/create.js > > I think you can combine that with Niels' code to get you where you're > aiming. > > mleden wrote: > >> Thanks Ryan & Niels for your responses. Using your suggestions, I've >> *almost* got the behavior I want. One thing I haven't been able to >> figure out is how to switch to a particular view based on a value in >> the URL's query string. I've tested and the query string is getting >> parsed correctly and I know that the function to switch views works. >> My guess is that my onload function is getting stomped by SIMILE's >> events. >> >> Has anyone had success doing something like that? >> >> Thx, >> -Mark >> >> >> On Aug 21, 10:42 pm, Niels Mayer <[email protected]> wrote: >> >>> One way to "navigate to a viewpanel" is programmatically. >>> >>> Assuming you have a viewpanel containing views declared: >>> <div ex:role="viewPanel" id="vp"> >>> <div ex:role="view" ##exhibit.getComponent("vp")._switchView(0); >>> > ... </div> >>> <div ex:role="view" ##exhibit.getComponent("vp")._switchView(1) >>> > ... </div> >>> ... >>> </div> >>> >>> You can programmatically switch to the i-th viewpanel (0-based) with >>> exhibit.getComponent("vp")._switchView(i) >>> >>> Or alternately, my utility function, switchView("vp", i) switches to the >>> i-th declared viewpanel, returning true, >>> or returns false if already showing. When it returns false, it also means it >>> hasn't destroyed/recreated the contents >>> of viewpanels in the process of switching, due to the way viewpanels are >>> implemented). >>> >>> /**************************************************************************** >>> * switch viewpanels if not already showing, returning true. if already >>> * showing return false. >>> >>> ****************************************************************************/ >>> function switchView(viewpanel_name, idx_in_viewpanel) { >>> var viewpanel = exhibit.getComponent(viewpanel_name); >>> if (viewpanel) { >>> if (viewpanel._viewIndex != idx_in_viewpanel) { >>> viewpanel._switchView(idx_in_viewpanel); >>> return true; >>> } >>> else { >>> return false; >>> } >>> } >>> else { >>> alert("switchView('" + viewpanel_name + "'," + idx_in_viewpanel + "): >>> viewpanel not found - '" + viewpanel_name + "'."); >>> } >>> >>> } >>> >>> Nielshttp://nielsmayer.com >>> >>> > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "SIMILE Widgets" 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/simile-widgets?hl=en -~----------~----~----~----~------~----~------~--~---
