我在网上找到了以下JS,其功能如下:
如果单击图像,请在新窗口中打开图像并提示打印。打印后窗口关闭。我需要修改此脚本以单击打印链接,然后打印图像,然后关闭新图像窗口。因此,我想从单击图像本身更改为单击显示打印图像的链接。
以下是代码:
<script type="text/javascript">
/* <![CDATA[ */
function makepage(src)
{
// We break the closing script tag in half to prevent
// the HTML parser from seeing it as a part of
// the *main* page.
return "<html>\n" +
"<head>\n" +
"<title>Temporary Printing Window</title>\n" +
"<script>\n" +
"function step1() {\n" +
" setTimeout('step2()', 10);\n" +
"}\n" +
"function step2() {\n" +
" window.print();\n" +
" window.close();\n" +
"}\n" +
"</scr" + "ipt>\n" +
"</head>\n" +
"<body onLoad='step1()'>\n" +
"<img src='" + src + "'/>\n" +
"</body>\n" +
"</html>\n";
}
function printme(evt)
{
if (!evt) {
// Old IE
evt = window.event;
}
var image = evt.target;
if (!image) {
// Old IE
image = window.event.srcElement;
}
src = image.src;
link = "about:blank";
var pw = window.open(link, "_new");
pw.document.open();
pw.document.write(makepage(src));
pw.document.close();
}
/* ]]> */
</script>
<img src="fortune.jpg" onclick="printme(event)" />
我不知道任何JS,所以我道歉。我只做php / mysql。 最好的祝福! 吉姆。
答案 0 :(得分:1)
<img src="someurl.jpg" id="imgid' />
<a href="javascript:printme('imgid');">Print the image</a>
function printme(id)
{
var src = document.getElementById(id).src;
var link = "about:blank";
var pw = window.open(link, "_new");
pw.document.open();
pw.document.write(makepage(src));
pw.document.close();
}
在旧方法中,printme
函数知道应该打印什么图像:点击的图像相同;更改触发器时,需要明确告诉函数要打印的图像。这就是我们向图像添加id
并将其传递给printme
函数的原因。但是如果您在页面上只有一个图像,或者存在空间关系(如链接始终是图像后面的下一个节点),那么我们可以做它有所不同,不需要id
。
答案 1 :(得分:0)
答案 2 :(得分:0)
您需要稍微修改printMe函数,这样做应该修复它:
function printme(evt)
{
if (!evt) {
// Old IE
evt = window.event;
}
var anchor = evt.target;
if (!anchor) {
// Old IE
anchor = window.event.srcElement;
}
src = anchor.href;
link = "about:blank";
var pw = window.open(link, "_new");
pw.document.open();
pw.document.write(makepage(src));
pw.document.close();
return false;
}
然后在您的实际锚点上,您将执行以下操作:
<a href="/path/to/image" onclick="printme(event);">Print</a>