)
我必须复制当前页面URL的参数,并将它们注入到一个新的URL中,放置在同一个当前页面上的按钮的href中。该页面是由WordPress + Divi制作的。
所以我为触发脚本的按钮设置了一个自定义ID。我的脚本相当复杂,我想它可以简化,但它工作正常...直到我尝试在href按钮中注入新的URL。
因此,我的目标是https://website.com/new-url/?f=John&l=Doe&从“www.example.com...”获得“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 );
2条答案
按热度按时间z5btuh9x1#
如果你只想把查询字符串复制到另一个url,你不需要把它分成块,只需要把它切下来并附加到另一个url。
t0ybt7op2#
window.location.search
返回参数,假设当前URL是https://example.com?utm_source=ap&utm_medium=email&utm_campaign=intro&utm_id=eml并且您希望在页面中复制(包括)这些查询参数,并提供指向https://app.example.com的链接,您可以简单地...
它将返回https://app.example.com?utm_source=ap&utm_medium=email&utm_campaign=intro&utm_id=eml