Simon,
You'd need to define the function through Exhibit like so
Exhibit.Functions["buildURL"] = {
f: function(args) {
var set = new Exhibit.Set();
var valueType = null;
var startDate, endDate, ...;
args[0].forEachValue(function(v) { startDate = v; return
true; });
args[1].forEachValue(function(v) { endDate = v; return true; });
...
var url = ...;
return new Exhibit.Expression._Collection([ url ], "text");
}
};
Another way to do this would be
<div ex:role="lens" ex:onshow="prepareLens">
...
<a ex:startDate-content=".startDate"
ex:endDate-content=".endDate"
...
>...</a>
</div>
with
function prepareLens(elmt) {
var a = ... code to locate <a> from elmt ...
var startDate = a.getAttribute("ex:startDate");
var endDate = a.getAttribute("ex:endDate");
...
var url = ...;
a.href = url;
}
David
[email protected] wrote:
> Hi,
>
> I'm wondering if anybody can tell me if it's possible to call a
> javascript function as the argument of the ex:href-content attribute
> (or any other attribute) in an Exhibit lens?
>
> What I'm trying to do is use some Exhibit date and time parameters
> which are specified in my JSON file (e.g. .startDate, .startTime,
> endDate, endTime) and pass these to the javascript function to
> generated a URL which encodes these values, and return the URL from
> the javascript function as the value of the ex:href-content attribute
> e.g.
>
>
> <a ex:href-content="buildURL(.startDate,.startTime,.endDate,.endTime)"
> ex:content="Link Title"></a>
>
>
> where the function buildURL is declared something like as:
>
>
> function buildURL(startDate,sTime,eDate,eTime) {
> // do some string manipulation of the four parameters here and build
> a URL
> return URL;
> }
>
>
> I've tried this but it's not working for me. I'm not able to share a
> link to my Exhibit page as it's on a private network. Can anybody
> offer any guidance? Do I need to declare the
> javascript function somewhere in the Exhibit code, or can it just be
> declared within <script> tags elsewhere on my page.
>
> Thanks in advance,
>
> Simon
> >
>
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---