Yup, it's definitely a nice little trick. Opens up a lot of possibilities,
and it's robust across browsers, too. (You only need javascript enabled.)
Altay
On 5/14/07, Jonathan Rochkind <[log in to unmask]> wrote:
>
> For what it's worth, I've used that same weird SCRIPT hack to insert
> dynamically generated code onto my OPAC screen for other purposes too.
> It was initially suggested to me by Dave Pattern. It's a useful hack.
>
> Jonathan
>
> Altay Guvench wrote:
> > Hi Godmar-
> >
> > Tim asked me to join the list and discussion on the LibraryThing
> widgets.
> >
> > You're right that, with Ajax, we're bound by the same-origin
> restriction.
> > But we can dynamically change the page content after loading, by
> > eschewing
> > traditional Ajax. New content is delivered through dynamically-inserted
> > <script> tags. For example, you can set an onclick that adds a tag like
> > this to the <head>:
> >
> > <script src="http://www.libarything.com/get_content.php?tag=foo"
> > type="text/javascript"></script>
> >
> > Server-side, get_content.php generates the response on the fly, e.g.
> > echo "
> > document.getElementById('tagbrowser').innerHTML = 'books tagged
> > foo'". As
> > long as the response header in get_content is set to javascript, the
> > browser
> > should interpret it correctly.
> >
> > As for the hardwired DOM finagling you saw in Danbury's OPAC, in most
> > cases,
> > the table[3] stuff isn't necessary. Typically, a library will simply
> > edit
> > their OPAC's html template to include empty widget divs ( e.g. <div
> > id="ltfl_tagbrowse" class='ltfl'></div> ) wherever they'd like the
> > widgets.
> > Then a single script tag finds those divs and inserts the contents
> > onload.
> >
> > However, there were some permissions issues with the Danbury OPAC that
> > didn't allow for this. (They could only edit the OPAC footer.) The
> > workaround was to dynamically insert the LTFL <div>s using custom
> > javascript
> > in the footer. That said, like I mentioned, this isn't necessary in
> most
> > cases. We've tested it in a few systems, and generally speaking, our
> > widgets are DOM-agnostic.
> >
> > Altay
> >
> >
> > ---------- Forwarded message ----------
> > From: Tim Spalding <[log in to unmask]>
> > Date: May 14, 2007 1:50 PM
> > Subject: Fwd: [CODE4LIB] A new generation of OPAC enhancements
> > To: Altay Guvench <[log in to unmask]>
> >
> > ---------- Forwarded message ----------
> > From: Godmar Back <[log in to unmask]>
> > Date: May 14, 2007 1:44 PM
> > Subject: Re: [CODE4LIB] A new generation of OPAC enhancements
> > To: [log in to unmask]
> >
> >
> > Interesting. A few questions/comments.
> >
> >> From what I can see, you will not be able to dynamically change the
> > page's content after it has finished loading, due to the same-origin
> > restriction. Is this correct? In other words, you'd have to pre-plan
> > for any user interactivity and send the necessary data along.
> >
> > We're pursuing a similar approach with the most recent version of
> > MAJAX. Instead of using <div>, we're using COinS-style <span> tags
> > currently. (*) We tried to keep the JavaScript to a minimum - the user
> > shouldn't include anything more than the <script> to pull the
> > processing JavaScript. Then only plain HTML would be used. (By
> > contrast, your approach relies on hardwiring knowledge of the page
> > layout into your Javascript, such as "table[3]" to find out where to
> > insert your information - and at librarything.com at that!)
> >
> > My comment, I suppose, is that it may be nice to agree on a set and
> > syntax of features that people could use to include into their web
> > offerings - not only the catalog, but other library and even
> > non-library offerings as well. For instance, a new book list or a list
> > of resources prepared by a professor for a particular class are
> > example applications we have prepared for Majax, and they could
> > certainly be implemented for/with LTFL as well.
> >
> > - Godmar
> >
> > (*) See http://libx.org/majax/majaxtalk.html - BTW, Annette will talk
> > about this in San Jose Wednesday afternoon at the IUG meeting.
> >
> >
> > On 5/14/07, Tim Spalding <[log in to unmask]> wrote:
> >>
> >> I expect many of you will object that both are kludges. We need
> >> genuinely open and extensible systems.
> >>
> >> Of course, I agree with you. All the LTFL widgets are also available
> >> as XML feeds. And I can't wait to plug them into Evergreen, or
> >> whatever. But, for now, and for most people, the exsiting OPACs exist.
> >> There's a lot we can do with them, even so.
> >>
> >> I hope that LTFL can inspire a new generation of light-weight OPAC
> >> enhancements. If anyone wants to talk architecture, I'm more than
> >> happy.
> >>
> >> Tim
> >>
> >
>
> --
> Jonathan Rochkind
> Sr. Programmer/Analyst
> The Sheridan Libraries
> Johns Hopkins University
> 410.516.8886
> rochkind (at) jhu.edu
>
|