私は、ウェブページ上の画像をクリックすると、画像への完全なパスを与えるブックマークレットに取り組んでいます。イメージはその後当社のサーバーにダウンロードされ、我々はそれにビジネスを行う。ブックレットレット画像へのフルパスを取得する
現在のところ、スクリプトは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' : ''});
});
最初のものは完全に動作し、悪いコードの10行を完全に殺しました。ありがとう! –
実際には、あなたのURLをエスケープすることは非常に重要です。今すぐすべての機能: $( "img")。 ?imgsrc = "+エスケープ(this.src)+" "); }); –
@fuhrysteve、yup、しかしencodeURIComponent()を使うべきです – James