Cách chuyển chuỗi truy vấn trong URL bằng JavaScript

Có thể thêm, cập nhật hoặc xóa các tham số truy vấn tìm kiếm bằng cách sử dụng Javascript URLURLSearchParams objects.

Để biết cách nhận tham số truy vấn bằng cách sử dụng URLURLSearchParams, refer the tutorial Get URL Parameters with Javascript.

Chỉnh sửa/Cập nhật thông số

Giá trị của tham số có thể được cập nhật bằng phương thức set() của đối tượng URLSearchParams.

Sau khi đặt giá trị mới, bạn có thể nhận chuỗi truy vấn mới bằng phương thức toString() . Chuỗi truy vấn này có thể được đặt làm giá trị mới của thuộc tính tìm kiếm của URL object.

Sau đó, url mới cuối cùng có thể được truy xuất bằng phương thức toString() của URL< . object.

var url = new URL('http://demourl.com/path?id=100&topic=main');
var search_params = url.searchParams;

// new value of "id" is set to "101"
search_params.set('id', '101');

// change the search property of the main url
url.search = search_params.toString();

// the new url string
var new_url = url.toString();

// output : http://demourl.com/path?id=101&topic=main
console.log(new_url);

Thêm một thông số mới

  • Phương thức set() có thể được sử dụng để thêm một tham số mới — tham số được thêm vào nếu nó tồn tại, nếu không thì giá trị của nó là .

    var url = new URL('http://demourl.com/path?id=100');
    var search_params = url.searchParams;
    
    // add "topic" parameter
    search_params.set('topic', 'main');
    
    url.search = search_params.toString();
    
    var new_url = url.toString();
    
    // output : http://demourl.com/path?id=100&topic=main
    console.log(new_url);
    
  • Để thêm một tham số có nhiều giá trị, hãy sử dụng phương thức append() .

    var url = new URL('http://demourl.com/path?topic=main');
    var search_params = url.searchParams;
    
    search_params.append('id', '101');
    search_params.append('id', '102');
    
    url.search = search_params.toString();
    
    var new_url = url.toString();
    
    // output : http://demourl.com/path?id=100&id=101&id=102&topic=main
    console.log(new_url);
    

Xóa một tham số theo tên

Phương thức delete() có thể được sử dụng để xóa tham số khỏi url.

search_params.delete('id');

Xóa tất cả các tham số

Có thể xóa tất cả tham số truy vấn khỏi url bằng cách đặt thuộc tính tìm kiếm của đối tượng URL thành trống.

var url = new URL('http://demourl.com/path?topic=main');

// set search property to blank
url.search = '';

var new_url = url.toString();

// output : http://demourl.com/path
console.log(new_url);

Nhiệm vụ là tạo một URL truy vấn cho yêu cầu GET được cung cấp một đối tượng JSON bằng cách sử dụng javaScript. Tham số truy vấn GET trong một URL chỉ là một chuỗi các cặp khóa-giá trị được kết nối với ký hiệu &. Để chuyển đổi một đối tượng JSON thành tham số truy vấn GET, chúng ta có thể sử dụng phương pháp sau

Đôi khi chúng ta cần lấy giá trị thông qua chuỗi truy vấn trong URL trên thanh địa chỉ của trình duyệt. Nhưng câu hỏi đặt ra là làm thế nào để lấy chúng bằng JavaScript hoặc jquery vì chúng tôi cần chúng ở phía máy khách

Ở đây tôi đang đề cập đến 4 cách để nhận giá trị từ tham số truy vấn. Tôi cũng đã hiển thị các ví dụ sử dụng. Bạn có thể sử dụng một trong số chúng theo lựa chọn của mình và cần trong JS hoặc jQuery phía máy khách

Cách chuyển chuỗi truy vấn trong URL bằng JavaScript

1. Truy xuất giá trị chuỗi truy vấn bằng URLSearchParams

Đây là cách đơn giản nhất và được khuyên dùng nhất để truy xuất các giá trị từ chuỗi truy vấn. URLSearchParams là một giao diện tích hợp trong các trình duyệt mới nhất với một số phương thức để lấy và thao tác các giá trị

URLTìm kiếmThông số

0

1

2

3

4

5

6

7

8

9

10

11

12

13

 

const urlParams = new URLSearchParams(window.vị trí. tìm kiếm);

const param_x = urlParams. lấy('param_x');

 

/*

ví dụ

//Chuỗi truy vấn có trong thanh địa chỉ của trình duyệt là 'submitted=true&msg=success'

 

var urlParams = new URLSearchParams(cửa sổ. địa điểm. Tìm kiếm);

var has_msg = urlParams. has('tin nhắn');

var msg = urlParams. get('tin nhắn');

var đã gửi = urlParams. get('đã gửi');

chuyển hướng var = urlParams. get('chuyển hướng');

*/

Mặc dù giao diện này hỗ trợ một số trình duyệt phù hợp, nhưng nó không có sẵn cho tất cả, đặc biệt là những trình duyệt cũ. Tôi khuyên bạn nên kiểm tra tài liệu chính thức trên Mozilla và Chrome. Nó có nhiều phương pháp hữu ích khác nhau để sử dụng

2. Cụm từ thông dụng trong JavaScript

Đây là hàm sẽ giải mã an toàn các thành phần URL bằng cách sử dụng biểu thức chính quy. Chúng ta có thể gọi hàm này và chuyển tên của tham số chuỗi truy vấn làm đối số để lấy giá trị

Biểu thức chính quy để nhận giá trị chuỗi truy vấn

0

1

2

3

4

5

6

7

8

9

10

 

Giả sử chúng ta có URL như sau. http://example.com/sports?game=football

Nếu chúng tôi muốn truy xuất giá trị cho tham số truy vấn trò chơi, chúng tôi có thể chuyển nó tới biến qsp dưới dạng một chuỗi và chúng tôi sẽ nhận được bóng đá làm giá trị. Nếu tham số không tồn tại thì hàm sẽ chỉ trả về một chuỗi rỗng

3. Hàm JavaScript đơn giản để lấy Đối tượng giá trị tham số truy vấn

Chúng ta cũng có thể lấy toàn bộ chuỗi truy vấn dưới dạng một đối tượng và sau đó truy cập giá trị của một tham số cụ thể bằng khóa của nó

Đối tượng giá trị tham số truy vấn

0

1

2

3

4

5

6

7

8

9

 

function get_query(){

    var url = tài liệu.vị trí. href;

    var qs = url.chuỗi con(url. indexOf('?') + 1).tách('&');

    cho(var i = 0, result = {}; i < qs.độ dài; i ++ ){

        như[i] = qs[i].tách('=');

        kết quả[qs[i][0]] = decodeURIComponent(qs[i][1]);

    }

    trả về kết quả;

}

Hàm trên thực hiện các bước sau

  1. Lấy URL
  2. Phân tích cú pháp chuỗi truy vấn bằng cách tách URL
  3. Lặp qua từng khóa trong chuỗi truy vấn được phân tích cú pháp
  4. Lưu trữ mọi khóa và giá trị của nó dưới dạng một đối tượng
  5. Trả lại đối tượng

Dưới đây là một ví dụ

Chuỗi truy vấn ví dụ dưới dạng đối tượng

0

1

2

3

4

5

6

7

8

9

10

11

12

 

// Chuỗi truy vấn trong URL

// x=5&y&z=chào&x=6

 

var kết quả = get_query();

bảng điều khiển. log(kết quả);

 

//Đầu ra

{

  x. "6",

  y. không xác định,

  z. "xin chào"

}

4. Cách jQuery để nhận các giá trị chuỗi truy vấn từ các tham số URL

Nếu bạn muốn một cách jQuery để lấy giá trị của một tham số URL cụ thể thì đây là hàm

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

 

(hàm($) {

    $. Chuỗi truy vấn = (hàm(a) {

        nếu (a == "") return {};

        var b = {};

        cho (var i = 0; i < a.độ dài; ++ i)

        {

            var p = a[i].tách('=');

            if (p. độ dài . = 2) tiếp tục;

            b[p[0]] = decodeURIComponent(p[1].thay thế( / \ + g, " "));

        }

        trả lại b;

    })(cửa sổ.vị trí. tìm kiếm. chất nền(1). tách('&'))

})(jQuery);

 

// Cách sử dụng

var param = jQuery. Chuỗi truy vấn["param"];

Hy vọng 4 hàm này sẽ giúp bạn lấy giá trị của các tham số chuỗi truy vấn trong một URL. Nếu bạn có bất kỳ câu hỏi nào hoặc bất kỳ vấn đề nào về jQuery/JavaScript, vui lòng liên hệ với chúng tôi

Làm cách nào để nhận URL hiện tại bằng chuỗi truy vấn trong JavaScript?

Chúng ta có thể sử dụng cửa sổ. vị trí. href thuộc tính để lấy toàn bộ URL hoặc chuỗi truy vấn của trang hiện tại trong JavaScript.

Làm cách nào chúng tôi có thể chuyển tham số truy vấn trong URL?

Tham số truy vấn là một tập hợp các tham số đã xác định được đính kèm ở cuối url. Chúng là phần mở rộng của URL được sử dụng để giúp xác định nội dung hoặc hành động cụ thể dựa trên dữ liệu được truyền. Để nối các tham số truy vấn vào cuối URL, a '? ' được thêm ngay sau một tham số truy vấn .

Làm cách nào để chuyển tham số URL trong JavaScript?

Cho một URL và nhiệm vụ là thêm một tham số bổ sung (tên & giá trị) vào URL bằng JavaScript. URL. Thông số tìm kiếm . Thuộc tính chỉ đọc này của giao diện URL trả về một đối tượng URLSearchParams cung cấp quyền truy cập vào các đối số truy vấn được giải mã GET trong URL.

Làm cách nào để đặt chuỗi truy vấn trong JavaScript?

Chúng ta cũng có sort() để sắp xếp tham số theo giá trị khóa và chúng ta có phương thức toString() để tạo chuỗi truy vấn từ các giá trị. Chúng ta có thể sử dụng append() / set() / delete() để chỉnh sửa chuỗi truy vấn và tạo chuỗi truy vấn mới với toString() .