Как переменная «accord» обновляется? В настоящий момент вы просто перезагружаете тот же URL, который создали в первый раз; если переменная JavaScript accord
изменилась, и вы хотите изменить URL-адрес, чтобы отразить это, вы должны создать новый URL-адрес и перейти на iframe к новой странице с другим параметром accord
.
function encodeParameters(o) {
var s= [];
for (var k in o)
if (o.hasOwnProperty(k))
s.push(encodeURIComponent(k)+'='+encodeURIComponent(o[k]));
return s.join('&');
}
var accord= ui.newHeader.text();
var url= 'mapURL.jsp?'+encodeParameters({
lat: '33.65', lng: '-84.42', accord: accord
});
document.getElementById('mapframe').src= url;
Примечание contentWindow
исторически является расширением IE, и его лучше избегать. Кроме того, если вам нужно создать свой iframe, соединив HTML-код, вам потребуется HTML-экранирование URL-адреса перед включением его в разметку. В противном случае символы &
в URL недопустимы и могут вызвать проблемы при нажатии на имя параметра, совпадающее с именем объекта HTML.
function encodeHTML(s) {
return s.replace(/&/g, '&').replace(/</g, '<').replace(/"/g, '"');
}
htmlData[i++]= '<iframe id="mapframe" src="'+encodeHTML(url)+'" frameborder="0" style="width:330px;height:300px"></iframe>';
(Я бы предпочел создавать элементы с использованием методов DOM, чтобы избежать необходимости явно кодировать HTML.)