我的问题是我正在为朋友设计一个网站。我所做的是设置一个缩略图列表,每个缩略图下面都有一个按钮,可以在新窗口中打开相应的图像,打印它,然后关闭窗口。Now he's decided that he wants checkboxes next to the thumbnails that when selected, a button click will print all selected images. 这可能吗?如果是这样,有人可以向我解释一下吗?谢谢你的时间。
问问题
3084 次
1 回答
6
这是您可以通过多种可能方式执行此操作的一种方式:
第一步:制作一个表格围绕所有内容并在表格内部,在每个图像旁边或下方放置一个带有唯一 ID 的复选框,我们可以使用它来识别它是哪一个,例如
<input type="checkbox" id="imageNumber3"/>
以便稍后您可以使用 id 来判断图像的含义。阅读表格和复选框。
第二步:创建一个javascript函数来获取当前选中的复选框,如下所示
function getChecked(form) {
var names;
var c = document.getElementById(form).getElementsByTagName('input');
for (var i = 0; i < c.length; i++) {
if (c[i].type == 'checkbox' && c[i].checked) {
names.append(c[i].id);
}
}
return names;
}
当你给它提供复选框所在表单的 id 时,这个函数应该遍历并检查每个框以查看它是否被选中。它将构建一个已选择的 id 数组并返回该数组。
第三步:创建一个新的打印函数,当按钮被点击时调用,像这样
function printBunch(ids) {
var windowUrl = 'about:blank';
var uniqueName = new Date();
var windowName = 'Print' + uniqueName.getTime();
var printWindow = window.open(windowUrl, windowName, 'left=50000,top=50000,width=0,height=0');
for(id in ids) {
//assuming the image will be the next sibling of the checkbox
var currentImage = document.getElementById(id).nextSibling.innerHTML;
printWindow.document.write(currentImage);
}
printWindow.document.close();
printWindow.focus();
printWindow.print();
printWindow.close();
}
然后对于按钮的点击输入“printBunch(getChecked());” 传递已检查图像的 id。您可能需要更改一些代码,具体取决于您如何设置与复选框相关的图像,但这应该可以帮助您入门。
于 2012-06-14T21:02:22.533 回答