(Closes #730) These changes make the permalink smarter in the case where we
already have some URL args in the URL. Thanks to penyaskito for the bug report. git-svn-id: http://svn.openlayers.org/trunk/openlayers@4047 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
@@ -35,9 +35,7 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
|
||||
initialize: function(element, base) {
|
||||
OpenLayers.Control.prototype.initialize.apply(this, arguments);
|
||||
this.element = OpenLayers.Util.getElement(element);
|
||||
if (base) {
|
||||
this.base = base;
|
||||
}
|
||||
this.base = base || document.location.href;
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -116,8 +114,22 @@ OpenLayers.Control.Permalink = OpenLayers.Class(OpenLayers.Control, {
|
||||
layers += (layer.getVisibility()) ? "T" : "F";
|
||||
}
|
||||
}
|
||||
var href = this.base + "?" + lat + "&" + lon + "&" + zoom +
|
||||
"&" + layers;
|
||||
|
||||
var href = this.base;
|
||||
var paramsString = lat + "&" + lon + "&" + zoom + "&" + layers;
|
||||
|
||||
var lastServerChar = href.charAt(href.length - 1);
|
||||
if ((lastServerChar == "&") || (lastServerChar == "?")) {
|
||||
href += paramsString;
|
||||
} else {
|
||||
if (href.indexOf('?') == -1) {
|
||||
//serverPath has no ? -- add one
|
||||
href += '?' + paramsString;
|
||||
} else {
|
||||
//serverPath contains ?, so must already have paramsString at the end
|
||||
href += '&' + paramsString;
|
||||
}
|
||||
}
|
||||
this.element.href = href;
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user