bookmarklet获取图像的完整路径
问题描述:
我正在研究一个bookmarklet,当您单击网页上的任何图像时,该图标会给出图像的完整路径。然后将图像下载到我们的服务器上,我们会为其制作商业内容。bookmarklet获取图像的完整路径
目前,该脚本使用jQuery解析出src
属性,然后有一些愚蠢的逻辑通常起作用,但通常不起作用。
现在,我可以不断写出丑陋的代码,以更好地使用正则表达式和东西解析出url,但我觉得应该有一些更好的方法来做到这一点..寻找某种方式来模仿(如在火狐)“右键点击=>复制图像位置”将是太棒了。
这里是我目前拥有的相关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' : ''});
});
答
我相信大多数浏览器标准化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 + "");
});
第一个完全工作,并完全杀死了10行错误代码。谢谢! – 2009-05-22 12:42:19