将JS代码从单击图像更改为单击链接

时间:2011-05-05 15:35:12

标签: javascript

我在网上找到了以下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。 最好的祝福! 吉姆。

3 个答案:

答案 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>