01/10/2018, 00:19

Giúp mình về javascript với

Xin chào anh em mình có một vấn đề là có một link gửi đi với dạng
var link = ‘print?path=’ + Array(imgUrl, width, height);
và bên trang con mình nhận được link dạng này
http://abc.com/print?path=front_1_1_l.jpg,360,451
vậy có cách nào lấy từng phần tử trong đó ra không vậy? ( 360 là width của img, và 451 là height của img) cản ơn mọi người nha

ACP viết 02:34 ngày 01/10/2018

Sao bạn lại dùng dấu , để phân biệt giữa các tham số vậy? Sao không dùng cách phổ biến:
Vd: http://example.com?path=front_1_1_l.jpg&w=360&h=451

Để lấy ra các tham số thì làm như sau:

var getUrlParameter = function getUrlParameter(sParam) {
var sPageURL = decodeURIComponent(window.location.search.substring(1)),
sURLVariables = sPageURL.split('&'), sParameterName, i;

for (i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');

    if (sParameterName[0] === sParam) {
        return sParameterName[1] === undefined ? true : sParameterName[1];
    }
}
};

Để lấy ra giá trị của than số:

var path= getUrlParameter('path');
var width= getUrlParameter('w');
var height= getUrlParameter('h');

Còn nếu bắt buộc phải xài url như bạn thì
1/ Lấy ra query string: window.location.search câu này sẽ trả ra:?path=front_1_1_l.jpg,360,451
2/ Code xử lí xóa dấu ? và split string theo dấu , là ra được 1 mảng giá trị (nhưng làm cách này thì phải tự biết vị trí nào là giá trị của tham số nào)

Bài liên quan
0