Javascript 如何重写URL的一部分?

Javascript 如何重写URL的一部分?,javascript,window.open,Javascript,Window.open,我在我的网站上使用lightbox2,我想让我的观众下载图片。该按钮起作用,它链接到/view/directory/image.jpg,下载按钮只显示图像。在PHP中,我编写了一个脚本来下载图像,并在mysql中设置download+1,我唯一不擅长的是JS lightbox2中当前的JS代码是: this.$lightbox.find('.lb-download').on('click', function (e) { window.open(e.target.href) });

我在我的网站上使用lightbox2,我想让我的观众下载图片。该按钮起作用,它链接到/view/directory/image.jpg,下载按钮只显示图像。在PHP中,我编写了一个脚本来下载图像,并在mysql中设置download+1,我唯一不擅长的是JS

lightbox2中当前的JS代码是:

this.$lightbox.find('.lb-download').on('click', function (e) {
    window.open(e.target.href)
  });
它链接到/view/directory/image.jpg,因为href显示图像。
我想让lb下载按钮转到/下载/directory/image.jpg,我已经让下载工作正常了,只是没有在JS中打开并替换部分。

你得到了
e.target.href
,其中包含“domain.com/view/directory/image.jpg”,你需要它来包含“domain.com/download/directory/image.jpg”因此您必须:

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


这将
e.target.href
转换为一个数组,然后将“视图”交换为“下载”(数组中的位置1),然后打开窗口…

您得到的
e.target.href
包含“domain.com/view/directory/image.jpg”,您需要它包含“domain.com/download/directory/image.jpg”“因此,您必须:

JS:


这会将
e.target.href
转换为一个数组,然后您将“视图”交换为“下载”(数组中的位置1),然后打开窗口…

您只需通过运行以下命令将单词
视图
替换为
下载

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

您只需运行以下命令,即可将单词
view
替换为
download

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

您可以将url中的部分替换为wordviewtodownload,如下所示:

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

您可以将url中的部分替换为wordviewtodownload,如下所示:

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

解决这个问题的另一种方法是使用模式和替换函数

做一个像这样的图案

var pattern = /view/ig; 
然后假设我们有一个像

var a = "domain.com/view/directory/image.jpg";
现在只需使用replace,我们就可以替换该URL中的任何单词

a = a.replace( pattern, "download" );
这里有一个例子

注意:您可以轻松地将a更改为e.target.href并对其应用替换功能

注意:上面模式中的i标志表示single,g标志表示要应用的全局标志


有关更多信息,请阅读:

解决此问题的另一种方法是使用模式和替换函数

做一个像这样的图案

var pattern = /view/ig; 
然后假设我们有一个像

var a = "domain.com/view/directory/image.jpg";
现在只需使用replace,我们就可以替换该URL中的任何单词

a = a.replace( pattern, "download" );
这里有一个例子

注意:您可以轻松地将a更改为e.target.href并对其应用替换功能

注意:上面模式中的i标志表示single,g标志表示要应用的全局标志


欲了解更多信息,请阅读:

比我的方法简单有效得多。谢谢迭戈。很乐意帮忙。:)比我的方法简单有效多了。谢谢你,迭戈。很乐意帮忙。:)这给了/album/directory/,download,domain.com,view,directory,image.jpg当我猜
e.target.href
不包含“domain.com/view/directory/image.jpg”时,其他方面的“/album/directory/”就不存在了。。。但是@Simple_程序员所展示的方法要好得多,也简单得多。这给了/album/directory/,download,domain.com,view,directory,image.jpg。我猜
e.target.href
不包含“domain.com/view/directory/image.jpg”其他方面的“/album/directory/”就不存在了。。。但是@Simple\u程序员所展示的方法要简单得多。