Thanks, I fixed them. Missing parens and the “in” should be “of” in the for-loop.
Christiaan > On 4 May 2019, at 03:11, Mahmood Shafeie Zargar <m...@msn.com> wrote: > > That sample script has a problem in the for loop, as well as in fetching the > property value. That still doesn't work for me. > > But this one works: > > function performBibDeskActionWithPublications(thePubs, {forScriptHook : > theScriptHook }) { > var theName = theScriptHook.name(); > var theID = theScriptHook.id <http://thescripthook.id/>(); > var theField = theScriptHook.fieldName(); > var oldValues = theScriptHook.oldValues(); > var newValues = theScriptHook.newValues(); > var theKeys = []; > var theTitles = []; > > for (var i=0, aPub; aPub=thePubs[i]; i++) { > theKeys.push(aPub.citeKey()); > theTitles.push(aPub.fields.byName("Author").value()); > } > > var app = Application.currentApplication(); > app.includeStandardAdditions = true; > > app.displayDialog("Name: " + theName + "\n" + "ID: " + theID + "\n" + "Cite > Keys: " + theKeys + "\n" + "Titles: " + theTitles + "\n" + "Field name: " + > theField + "\n" + "Old values: " + oldValues + "\n" + "New values: " + > newValues, { buttons :["OK"], defaultButton : 1 }); > } > > > Best, > Mah > > From: Christiaan Hofman <cmhof...@gmail.com> > Sent: May 2, 2019 7:22 PM > To: For general discussion about using BibDesk > Subject: Re: [Bibdesk-users] JXA ScriptHook > > > >> On 2 May 2019, at 18:55, Christiaan Hofman <cmhof...@gmail.com >> <mailto:cmhof...@gmail.com>> wrote: >> >> >> >>> On 2 May 2019, at 18:12, Christiaan Hofman <cmhof...@gmail.com >>> <mailto:cmhof...@gmail.com>> wrote: >>> >>> >>> >>>> On 2 May 2019, at 17:22, Mahmood Shafeie Zargar <m...@msn.com >>>> <mailto:m...@msn.com>> wrote: >>>> >>>> Hi, >>>> >>>> I would like to know where I can find an example of a script hook written >>>> in JavaScript. >>>> >>>> I have tried things like this to no avail: >>>> >>>> functionperformBibDeskActionWithPublications(pubs, scriptHook) { >>>> >>>> } >>>> >>>> The function code runs, but no value is loaded in the parameters. >>>> >>>> Thanks, >>>> Mah >>> >>> >>> I haven’t tried using JXA script hooks, but I think they should work. >>> Though it could be JXA hangs BibDesk, because of bugs with JXA (that Apple >>> says aren’t bugs but just how it works), that will be fixed in the next >>> release. >>> >>> I am not an expert on JS, but shouldn’t it be: >>> >>> function performBibDeskActionWithPublications(pubs, >>> {forScriptHook:scriptHook}) { >>> } >>> >>> Christiaan >> >> >> Here is the JXA version for the sample script hook: >> >> function performBibDeskActionWithPublications(thePubs, { forScriptHook : >> theScriptHook }) { >> var theName = theScriptHook.name(); >> var theID = theScriptHook.id <http://thescripthook.id/>(); >> var theField = theScriptHook.fieldName(); >> var oldValues = theScriptHook.oldValues(); >> var newValues = theScriptHook.newValues(); >> var theKeys = []; >> for (var aPub in thePubs) { >> theKeys.push(aPub.citeKey); >> } >> var app = Application.currentApplication(); >> app.includeStandardAdditions = true; >> app.displayDialog("Name: " + theName + "\n" + "ID: " + theID + "\n" + "Cite >> Keys: " + theKeys + "\n" + "Field name: " + theField + "\n" + "Old values: " >> + oldValues + "\n" + "New values: " + newValues, { buttons : ["OK"], >> defaultButton : 1 }); >> } >> >> It works for me, at least with the current nightly. >> >> Christiaan >> > > > I’ve added some sample JXA script hooks on the Wiki. > > Christiaan
_______________________________________________ Bibdesk-users mailing list Bibdesk-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/bibdesk-users