2016-08-24 14 views
0

私は自分のサイトでlightbox2を使用していますので、視聴者に画像をダウンロードさせてもらいたいのです。ボタンは動作し、/view/directory/image.jpgにリンクし、ダウンロードボタンは画像だけを表示します。 PHPで私は画像をダウンロードしてmysqlにダウンロード+ 1を設定するスクリプトを作ったが、私はそれほど良くはないのはJSだ。 lightbox2でURLの一部を書き換える方法は?

現在のJSコードは次のようになりますので、画像を示しwhitchのhrefの/view/directory/image.jpgにリンク

this.$lightbox.find('.lb-download').on('click', function (e) { 
    window.open(e.target.href) 
    }); 

。 lbダウンロードボタンを/にダウンロードします。 /directory/image.jpg、私はすでにダウンロードを行っています.JSにはwindow.openとpreg_replaceの部分がありません。あなたは"domain.com/view/directory/image.jpg"が含まれており、それはとてもあなたを"domain.com/download/directory/image.jpg"を含める必要がe.target.hrefを得た

答えて

1

あなたは言葉ビューへのダウンロードこのようなと、URL内の部品を交換することができます

this.$lightbox.find(".lb-download").on("click", function (e) { 
    window.open(e.target.href.replace("/view/", "/download/")) 
}); 
+0

ありがとうございました!これは機能しました –

+0

あなたの歓迎、嬉しいです。 – xxxmatko

0
url=e.target.href; 
url=url.split("/"); 
url[0]=url[0]+"/download"; 
url.join("/"); 
window.open(url); 
0

JS:「しなければならないでしょう

let dwHref = e.target.href; 
dwHref = dwHref.split("/"); 
dwHref[1] = "download"; 
dwHref.join("/"); 
window.open(dwHref); 

このアレイにe.target.hrefに変換し、その後、 『ダウンロード』の 『ビュー』(配列の位置1)を交換して、ウィンドウを開きます。.. 。

+0

これは次に/album/directory/,download,domain.com,view,directory,image.jpg –

+0

を与えた私は 'e.target.href'が含まれていないと思い__ "domain.com/view/directory/image。jpg "__ other wise __"/album/directory/"__はそこにはいないだろうが、@Simple_Programmerで示されたアプローチははるかに良く簡単である。 –

5

あなたは、単に以下を実行して、downloadと単語viewを置き換えることができます -

var urlToBeOpened = e.target.href.replace('view', 'download'); 
window.open(urlToBeOpened); 
+0

私のアプローチよりはるかにシンプルで効率的。 –

+0

ありがとうDiego。喜んでお手伝いします:) –

0

この問題を解決するもう1つのアプローチは、パターン置換機能を使用することです。

その後、

var pattern = /view/ig; 

のようなパターンは、我々は

var a = "domain.com/view/directory/image.jpg"; 

のような文字列は、今、我々はここでそのURLに

a = a.replace(pattern, "download"); 

を任意の単語を置き換えることができます置き換える単純に一例である持っていると仮定してくださいhttps://jsfiddle.net/mhadaily/0zpekx6t/1/

注:簡単にaをe.target.hrefに変更して、それに対してreplace関数を適用します。

注意:上記のパターンのiフラグはsingleを意味し、gフラグはグローバルを適用することを意味します。より多くのinfromationについて

お読みください:https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions