我有一个函数从xul文件中获取所选复选框的值(比如说tree.xul)。在另一个XUL文件中有文本框,我想传递所选复选框的值(标签值)(让我们说textbox.xul)。
最初我正在从“textbox.xul”文件中打开我的“tree.xul”文件。当我选中复选框值并单击按钮将值传递给另一个xul文件(“textbox.xul”)。
我在“textbox.xul”文件中有一个文本框,我想将复选框的值传递给此文本框。
<textbox id="ali" value=""/>
<button label="Contacts" onclick="DisplayContacts();"/>
在我的脚本中,我正在尝试这样但是它不起作用,而且我已经包含了这一小段代码功能
window.close()的;
在传递值后关闭窗口(“tree.xul”)。
我是否必须使用数组来存储变量的所有值?
我正在尝试使用Mozilla对话框中的解释,但它无效。
function get() { // check the alignment on a number of cells in a table.
var table = document.getElementById("box");
var cells = table.getElementsByTagName("checkbox");
for (var i = 0; i < cells.length; i++)
{
var cell = cells[i];
if(cell.checked) {
alert(cell.getAttribute("label"));
var x = cell.getAttribute("label");
x = window.arguments[0];
// or cell.label
}
}
window.close();
}
这是动态创建的复选框值的代码:
function choose()
{
//alert('hi');
var tree = document.getElementById('myTodoListTree');
for (var i = 0; i < tree.view.rowCount; i++) {
if (tree.view.getCellValue(i, tree.columns.getColumnAt(0)) == 'true'){
var empty = " ";
var contact = (tree.view.getCellText(i, tree.columns.getNamedColumn("name"))+ empty+
tree.view.getCellText(i, tree.columns.getNamedColumn("lastname"))+ empty+ "Contacts:");
var ggmail = tree.view.getCellText(i, tree.columns.getNamedColumn("gmail"));
var yyahoo = tree.view.getCellText(i, tree.columns.getNamedColumn("yahoo"));
var existingEl = document.getElementById('box');
var capt = document.createElement('groupbox');
existingEl.appendChild(capt);
var captionEl = document.createElement('caption');
capt.appendChild(captionEl);
captionEl.setAttribute('label', contact );
captionEl.setAttribute('style', 'color: blue;');
var existing = document.getElementById('box');
var checkbox = document.createElement('checkbox');
capt.appendChild(checkbox);
checkbox.setAttribute('label', ggmail );
checkbox.setAttribute('style', 'color: green;');
var existing = document.getElementById('box');
var checkbox = document.createElement('checkbox');
capt.appendChild(checkbox);
checkbox.setAttribute('label', yyahoo);
checkbox.setAttribute('style', 'color: green;');
}
}
return arr;
}
这里用户选择“tree.xul”文件中的复选框,我有一个按钮(“function get()”)将值添加到“texbox.xul”窗口的文本框中。 / p>
这是从text-box.xul文件中打开tree.xul的函数:
function DisplayContacts()
{
var returnValues = { out: null };
window.openDialog("chrome://hello/content/sundayevening2.xul","sundayevening2","", returnValues);
}
请帮我将值传递到另一个XUL窗口的文本框中。
感谢你。
答案 0 :(得分:2)
您可能希望使用以下内容:Passing extra parameters to the dialog in XUL
这提供了一种在xul文件中传递值的简单方法。
对于您的问题,您可以在textbox.xul中执行类似的操作。这将打开tree.xul以及额外的参数 returnValues :
var returnValues = { out: null };
window.openDialog("tree.xul", "tree", "modal", returnValues);
注意modal
是必须的。
接下来在你的tree.xul中,存储你要传递给textbox.xul的所有值(让我们称之为 x ),如下所示:
window.arguments[0].out = x
注意window.argument [0]指的是returnValues
现在您可以在textbox.xul中访问 x 的值(这是您的案例中的标签名称),如下所示:
var labels = returnValues.out;
基本上,
您在打开参数时将参数传递给子窗口。
然后在子窗口中,使用要传递回的值填充参数 父窗口然后关闭子窗口。
现在回到父窗口,您可以访问传递给子项的参数,它包含子窗口更新的信息。