复制URL参数并将其插入到另一个URL中



(
我必须复制当前页面URL的参数,并将它们注入到一个新的URL中,放置在同一当前页面上的按钮的href中。该页面由WordPress+Divi制作。

所以我为触发脚本的按钮设置了一个自定义ID。我的剧本很复杂,我想它可以简化,但它有效。。。直到我尝试在href按钮中插入新的URL。

所以我的目标是;https://website.com/new-url/?f=John&l=Doe"从";https://website.com/current-url/?f=John&l=Doe"并将新URL放在当前URL 上的href按钮中

如果有人能帮我,我提前感谢他!
这是我的代码:

function getParameterByName(name, url = window.location.href) {
name = name.replace(/[[]]/g, '\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/+/g, ' '));
}
var f_value = getParameterByName('f');
var l_value = getParameterByName('l');
var e_value = getParameterByName('e');
var ph_value = getParameterByName('ph');
var id_value = getParameterByName('id');
(function( $ ) {
$( "#js-caller" ).on( "click", function( event ){
const myUrlWithParams = new URL("https://website.com/new-url/");
myUrlWithParams.searchParams.append("f", f_value);
myUrlWithParams.searchParams.append("l", l_value);
myUrlWithParams.searchParams.append("e", e_value);
myUrlWithParams.searchParams.append("ph", ph_value);
myUrlWithParams.searchParams.append("id", id_value);
console.log(myUrlWithParams.href);
alert(myUrlWithParams);
event.preventDefault();
});
})(jQuery);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>

function getParameterByName(name, url = window.location.href) {
name = name.replace(/[[]]/g, '\$&');
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/+/g, ' '));
}
var f_value = getParameterByName('f');
var l_value = getParameterByName('l');
var e_value = getParameterByName('e');
var ph_value = getParameterByName('ph');
var id_value = getParameterByName('id');
(function( $ ) {
$( "#js-caller" ).on( "click", function( event ){
const myUrlWithParams = new URL("https://website.com/new-url/");
myUrlWithParams.searchParams.append("f", f_value);
myUrlWithParams.searchParams.append("l", l_value);
myUrlWithParams.searchParams.append("e", e_value);
myUrlWithParams.searchParams.append("ph", ph_value);
myUrlWithParams.searchParams.append("id", id_value);
console.log(myUrlWithParams.href);
alert(myUrlWithParams);//for testing the new url (and it works!)
event.preventDefault();//to stop the Divi default event
});
})( jQuery );

var currentUrl = 'https://website.com/current-url/?f=John&l=Doe';
var newUrl = 'https://website.com/new-url/';
var indexOfQuestionMark = currentUrl.indexOf('?');
console.log(newUrl + currentUrl.slice(indexOfQuestionMark));

如果您想简单地将查询字符串复制到不同的url,则不需要对其进行分组。只需将其切片并附加到另一个url即可。

window.location.search返回params,因此假设您所在的当前URL为https://example.com?utm_source=ap&utm_medium=电子邮件&utm_campaign=介绍&utm_id=eml

你想要一个链接https://app.example.com在复制(包括(这些查询参数的页面中,您可以简单地。。。

const url = `https://app.example.com${window.location.search}`;

哪个会回来https://app.example.com?utm_source=ap&utm_medium=电子邮件&utm_campaign=介绍&utm_id=eml

最新更新