웹 페이지의 이미지를 클릭 할 때 이미지의 전체 경로를 제공하는 책갈피 릿 작업을하고 있습니다. 그런 다음 이미지가 서버에 다운로드되고 우리는 비즈니스 데이터를 처리합니다.북마클릿을 사용하여 이미지의 전체 경로를 얻으십시오.
현재 스크립트는 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' : ''});
});
첫 번째 작업은 완전히 작동하고 10 줄의 나쁜 코드가 완전히 삭제되었습니다. 감사! –
사실, 당신의 URL을 피하는 것이 중요합니다 .. 이제는 모든 것을 위해 작동합니다 : $ ("img"). (function() { window.open ("http://www.mycompany.com/whatever ? imgsrc = "+ 이스케이프 (this.src) +" "); }); –
@fuhrysteve, 그래도 encodeURIComponent()를 사용해야합니다. – James