2008/08/12

openDialog() XUL 對「視窗」的處理

請參考 DOM:window.openDialog

window.openDialog() 算是 window.open() 的雙胞胎,當然有點不一樣,先來看看語法:

newWindow = openDialog(url, name, features, arg1, arg2, ...)

把後面的參數傳進去,在新開啟的 Dialog 裡頭要怎麼用呢?我們直接以語法裡傳了二個為例,在新開的 Dialog 中可以用 window.arguments[#] 取得,如:


var arg1 = window.arguments[0];
var arg2 = window.arguments[1];


有傳參數進去當然也要取得傳回值,方法就是把傳回值也當參數傳進去,如下:

var retVals = { address: null, delivery: null };
openDialog("http://example.tld/zzz.xul", "dlg", "modal", "pizza", 6.98, retVals);

在新開的視窗中透過 retVal 設定要傳回的值,例如
var retVals = window.arguments[2];
retVals.address = enteredAddress;
retVals.delivery = "immediate";

那麼在原視窗就可以透過 retVal 取得所要有值。

0 意見: