Rumah >hujung hadapan web >tutorial js >Bagaimanakah saya boleh mengubah suai parameter URL dan menentukan lalai menggunakan JavaScript?

Bagaimanakah saya boleh mengubah suai parameter URL dan menentukan lalai menggunakan JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-11-11 01:22:02826semak imbas

How can I modify URL parameters and specify defaults using JavaScript?

Tukar Parameter URL dan Tentukan Lalai Menggunakan JavaScript

Masalah:

Anda perlu mengubah suai parameter URL 'baris' dalam URL yang diberikan kepada nilai tertentu atau tambahkannya dengan nilai lalai jika ia tidak wujud.

Penyelesaian:

Gunakan fungsi JavaScript seperti updateURLParameter untuk memanipulasi URL parameter. Berikut ialah versi lanjutan kod yang disediakan dalam jawapan masalah:

/**
 * http://stackoverflow.com/a/10997390/11236
 */
function updateURLParameter(url, param, paramVal) {
    let newAdditionalURL = "";
    const tempArray = url.split("?");
    const baseURL = tempArray[0];
    let additionalURL = tempArray[1];
    let temp = "";

    if (additionalURL) {
        const additionalURLArray = additionalURL.split("&");
        additionalURLArray.forEach((paramValue) => {
            if (paramValue.split('=')[0] != param) {
                newAdditionalURL += temp + paramValue;
                temp = "&";
            }
        });
    }

    const rows_txt = temp + "" + param + "=" + paramVal;
    return baseURL + "?" + newAdditionalURL + rows_txt;
}

// Function Calls:
const newURL1 = updateURLParameter(window.location.href, 'locId', 'newLoc');
const newURL2 = updateURLParameter(newURL1, 'resId', 'newResId');

window.history.replaceState('', '', updateURLParameter(window.location.href, "param", "value"));

Versi Kemas Kini Pengendalian Sauh URL:

function updateURLParameter(url, param, paramVal) {
    let TheAnchor = null;
    let newAdditionalURL = "";
    const tempArray = url.split("?");
    const baseURL = tempArray[0];
    let additionalURL = tempArray[1];
    let temp = "";

    if (additionalURL) {
        const tmpAnchor = additionalURL.split("#");
        TheParams = tmpAnchor[0];
        TheAnchor = tmpAnchor[1];
        if (TheAnchor) additionalURL = TheParams;

        const tempArray = additionalURL.split("&");

        tempArray.forEach((paramValue) => {
            if (paramValue.split('=')[0] != param) {
                newAdditionalURL += temp + paramValue;
                temp = "&";
            }
        });
    } else {
        const tmpAnchor = baseURL.split("#");
        TheParams = tmpAnchor[0];
        TheAnchor = tmpAnchor[1];

        if (TheParams) baseURL = TheParams;
    }

    if (TheAnchor) paramVal += "#" + TheAnchor;

    const rows_txt = temp + "" + param + "=" + paramVal;
    return baseURL + "?" + newAdditionalURL + rows_txt;
}

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengubah suai parameter URL dan menentukan lalai menggunakan JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn