Перенаправление с несколькими переменными - PullRequest
0 голосов
/ 28 марта 2020

У меня есть этот код, который позволяет перенаправить c с одним параметром, который приходит из URL-адреса origianl - я ищу решение, которое позволит мне получить несколько параметров из ссылки и заполнить их перенаправленной ссылкой как мне это сделать?

function redirect() {
    var sub = getSub();
    var country = sGeobytesInternet;
    if (country == "US") {
        window.location = "https://bondika.com/click?pid=17&offer_id=8693&sub1=creative1"+sub
    } else if (country == "NL"){
        window.location = "https://bondika.com/click?pid=17&offer_id=8693&sub1=creative1"+sub
    } else {
        window.location = "http://www.ynet.co.il/"
    }
}   

function getSub() {
    regex = /subid=([\w-]*)/;
    url = window.location.href;
    if (-1 != url.indexOf("subid")) {
        var id = url.match(regex)[1];
        return id;
    } else {
        return '';
    }
}
redirect()

1 Ответ

0 голосов
/ 29 марта 2020

Решение

Вы можете использовать следующую функцию для получения параметров в URL

function getParameters(){
    return new Map(window.location.search.slice(1).split('&').map((param)=>{
       const [key, value] = param.split('=')
       return [key, decodeURIComponent(value|| '')]
    }))
}

Для использования:

const parameters = getParameters()
const email = paramaters.get('email')
const phone = paramaters.get('phone')
const state = paramaters.get('state')

Для перенаправления с использованием простого JS Вы можете выполнить любое из следующих действий (обратите внимание, что они похожи, но обязательно одинаковы)

window.location.href = "http://stackoverflow.com";
window.location.assign("http://stackoverflow.com");
window.location.replace("http://stackoverflow.com");

Соберите все вместе:

function getParameters(){
    const parameters = new Map(window.location.search.slice(1).split('&').map((param)=>{
       const [key, value] = param.split('=')
       return [key, decodeURIComponent(value|| '')]
    }))
}
function redirect(){    
    // GET PARAMETERS FROM CURRENT URL
    const parameters = getParameters()
    const email = paramaters.get('email')
    const phone = paramaters.get('phone')
    const state = paramaters.get('state')

    // BUILD URL HERE
    const BASE_URL = 'https://my_domain.com/'
    let redirect_url = BASE_URL
    if(email){
        redirect_url += `?email=${email}`
    } 
    ...

    // REDIRECT
    window.location.href = redirect_url
}
redirect()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...