0

我正在开发一个小书签,当您单击网页上的任何图像时,它会提供图像的完整路径。然后将图像下载到我们的服务器上,我们对其进行业务处理。

目前,该脚本使用 jQuery 解析出src属性,然后有一些通常可以工作的愚蠢逻辑,但通常情况下它不起作用。

现在,我可以继续编写丑陋的代码来更好地使用正则表达式和其他东西来解析 url,但我觉得应该有一些更好的方法来做到这一点.. 找到一些模仿的方法(如在 firefox 中)“对-单击 => 复制图像位置”会很棒。

这是我目前拥有的相关 js 代码(有问题,但它通常可以工作)。关于如何更好地实现这一点的任何创新想法?

var imgsrc;
$("img").click(function() {
  imgsrc = $(this).attr("src");
  var url = document.URL;

  if (window.location.pathname != "/") {
    var pathLoc = url.indexOf(window.location.pathname);
    url = url.substr(0, pathLoc + 1);
  } else if (window.location.pathname.substr(0,1) == "/") {
    url = url.substr(0, url.length - 1);
  }

  if (imgsrc.toLowerCase().indexOf("http://") != 0) {
    imgsrc = url + imgsrc;
  }

  window.open("http://www.mycompany.com/whatever?imgsrc=" + imgsrc + "");
});

$("img").hover(function () {
  $(this).css({'border' : '4px solid #ff0000'});
  }, function () {$(this).css({'border' : ''});
});
4

2 回答 2

1

我相信大多数浏览器都会规范化该SRC属性(我的意思是 DOM 属性,而不是getAttribute('src'))。所以你可以尝试:

$("img").click(function() {
    window.open("http://www.mycompany.com/whatever?imgsrc=" + this.src + "");
});

如果这不起作用,那么我知道锚标签的HREF属性已标准化;这肯定会奏效:

$("img").click(function() {
    var fullSrc = $('<a/>').attr('href', this.src)[0].href;
    window.open("http://www.mycompany.com/whatever?imgsrc=" + fullSrc + "");
});
于 2009-05-22T12:30:33.483 回答
0

要将菜单添加到上下文菜单,您必须为 firefox 创建一个扩展。我在这里为维基百科创建了一​​个扩展:您可能对代码感兴趣。

于 2009-05-22T12:25:04.057 回答