Fix embed

This commit is contained in:
John Firebaugh 2013-07-29 11:30:58 -07:00
parent 3eb4f1938c
commit f17304e8ed
3 changed files with 24 additions and 11 deletions

View file

@ -113,6 +113,19 @@ function cookieContent(map) {
return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|'); return [center.lng, center.lat, map.getZoom(), map.getLayersCode()].join('|');
} }
function escapeHTML(string) {
var htmlEscapes = {
'&': '&',
'<': '&lt;',
'>': '&gt;',
'"': '&quot;',
"'": '&#x27;'
};
return string == null ? '' : (string + '').replace(/[&<>"']/g, function(match) {
return htmlEscapes[match];
});
}
/* /*
* Forms which have been cached by rails may have the wrong * Forms which have been cached by rails may have the wrong
* authenticity token, so patch up any forms with the correct * authenticity token, so patch up any forms with the correct

View file

@ -5,12 +5,11 @@ window.onload = function () {
var query = (window.location.search || '?').substr(1), var query = (window.location.search || '?').substr(1),
args = {}; args = {};
query.replace(/([^&=]+)=?([^&]*)(?:&+|$)/g, function(match, key, value) { var pairs = query.split('&');
value = value.split(","); for (var i = 0; i < pairs.length; i++) {
if (value.length == 1) var parts = pairs[i].split('=');
value = value[0]; args[parts[0]] = decodeURIComponent(parts[1] || '');
args[key] = value; }
});
var map = L.map("map"); var map = L.map("map");
map.attributionControl.setPrefix(''); map.attributionControl.setPrefix('');
@ -26,7 +25,7 @@ window.onload = function () {
} }
if (args.marker) { if (args.marker) {
L.marker(args.marker, {icon: L.icon({ L.marker(args.marker.split(','), {icon: L.icon({
iconUrl: <%= asset_path('images/marker-icon.png').to_json %>, iconUrl: <%= asset_path('images/marker-icon.png').to_json %>,
iconSize: new L.Point(25, 41), iconSize: new L.Point(25, 41),
iconAnchor: new L.Point(12, 41), iconAnchor: new L.Point(12, 41),
@ -36,8 +35,9 @@ window.onload = function () {
} }
if (args.bbox) { if (args.bbox) {
map.fitBounds([L.latLng(args.bbox[1], args.bbox[0]), var bbox = args.bbox.split(',');
L.latLng(args.bbox[3], args.bbox[2])]) map.fitBounds([L.latLng(bbox[1], bbox[0]),
L.latLng(bbox[3], bbox[2])])
} else { } else {
map.fitWorld(); map.fitWorld();
} }

View file

@ -290,9 +290,9 @@ L.OSM.share = function (options) {
$('#embed_html').val( $('#embed_html').val(
'<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="' + '<iframe width="425" height="350" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="' +
'http://' + OSM.SERVER_URL + '/export/embed.html?' + $.param(params) + escapeHTML('http://' + OSM.SERVER_URL + '/export/embed.html?' + $.param(params)) +
'" style="border: 1px solid black"></iframe><br/>' + '" style="border: 1px solid black"></iframe><br/>' +
'<small><a href="' + map.getUrl(marker) + '</a></small>'); '<small><a href="' + escapeHTML(map.getUrl(marker)) + '</a></small>');
// Image // Image