You can get even more tricky by creating a js object in the code
preceeding the window.openDialog() call, and then you dont have to worry
about the order of the arguments:
foo={
apple : "red",
banana: "yellow",
orange: "green"
}
then call
window.openDialog("chrome://my/package/content/foo.xul",foo)
Then in the dialog you can always just use:
window.arguments[0].apple;
or
window.arguments[0]['banana'];
I ran into this problem with aim code. It's a pain to do it the other way because you
always have to make sure you keep the order of the arguments right, and if you want to
add a new argument, you have to add it to all the callers of that openDialog, lest
someone else add a new argument and not know they need a placeholder for your new
argument :)
Brian King wrote:
> You can pass a limitless (I think) number of arguments when opening a
> dialog like follows:
>
> XUL
> window.openDialog("chrome://my/package/content/foo.xul",
> "fooDialog",
> "chrome,dialog=yes,close=no,modal=yes",
> var1,
> var2
> var3);
>
> and get at them in script:
>
> JS
> var one = window.arguments[0];
> var two = window.arguments[1];
> // ...
>
> - Brian
>
> Daniel Howe wrote:
>
>> Hi all,
>> I need to pass a variable to a modal window, so that when it opens some
>> of the user prefs are pre-filled. A similar example is the CookieViewer
>> window - if I needed to open that window with the fields for one cookie
>> pre-filled & I had the id for that cookie, how could I do this? Any help
>> would be great...
>> Thanks much,
>> /daniel
>