Ticket #734: Util.getArgs.patch
| File Util.getArgs.patch, 2.5 kB (added by fredj, 1 year ago) |
|---|
-
tests/test_Util.html
old new 571 571 t.eq(OpenLayers.Util.createDiv().id, "OpenLayersDiv3", "Div created is sequential, starting at lastSeqID in Util."); 572 572 } 573 573 574 function test_Util_getArgs(t) { 575 t.plan(5); 576 t.eq(OpenLayers.Util.getArgs('http://www.example.com'), {}, "getArgs works when args = ''"); 577 t.eq(OpenLayers.Util.getArgs('http://www.example.com?'), {}, "getArgs works when args = '?'"); 578 t.eq(OpenLayers.Util.getArgs('http://www.example.com?hello=world&foo=bar'), 579 {'hello' : 'world', 'foo': 'bar'}, "getArgs works when args = '?hello=world&foo=bar'"); 580 t.eq(OpenLayers.Util.getArgs('http://www.example.com?hello=&foo=bar'), 581 {'hello' : '', 'foo': 'bar'}, "getArgs works when args = '?hello=&foo=bar'"); 582 t.eq(OpenLayers.Util.getArgs('http://www.example.com?foo=bar#bugssucks'), 583 {'foo': 'bar'}, "getArgs works when using a fragment identifier"); 584 } 574 585 // --> 575 586 </script> 576 587 </head> -
lib/OpenLayers/Util.js
old new 609 609 if(url == null) { 610 610 url = window.location.href; 611 611 } 612 var query = (url.indexOf('?') != -1) ? url.substring(url.indexOf('?') + 1) 613 : ''; 612 613 var start = url.indexOf('?'); 614 var stop = url.indexOf('#'); 615 616 if (start != -1) { 617 if (stop != -1) { 618 var query = url.substring(start + 1, stop); 619 } else { 620 var query = url.substring(start + 1); 621 } 622 } else { 623 return {}; 624 } 625 614 626 var args = new Object(); 615 627 pairs = query.split(/[&;]/); 616 628 for(var i = 0; i < pairs.length; ++i) { 617 keyValue = pairs[i].split(/=/); 618 if(keyValue.length == 2) { 619 args[decodeURIComponent(keyValue[0])] = 620 decodeURIComponent(keyValue[1]); 629 keyValue = pairs[i].split('='); 630 if (keyValue[0]) { 631 if (keyValue[1]) { 632 args[decodeURIComponent(keyValue[0])] = decodeURIComponent(keyValue[1]); 633 } else { 634 args[decodeURIComponent(keyValue[0])] = ''; 635 } 621 636 } 622 637 } 623 638 return args;
