Передача переменной в jsp при перезагрузке iframe с использованием javascript

Вы отправляете JSON, как это

$.ajax(url, {
    data : JSON.stringify(myJSObject),
    contentType : 'application/json',
    type : 'POST',
    ...

, если вы передаете объект как settings.data jQuery будет преобразовывать его в параметры запроса и по умолчанию отправлять с помощью приложения типа данных / x-www-form- urlencoded; charset = UTF-8, возможно, не то, что вы хотите

1
задан Bill the Lizard 16 July 2010 в 16:58
поделиться

1 ответ

Как переменная "согласия" обновляется? В настоящий момент вы просто перезагружаете тот же 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, вам нужно будет экранировать URL-адрес с помощью HTML, прежде чем включать его в разметку. В противном случае символы и в URL-адресе недействительны и могут вызвать проблемы, если вы нажмете имя параметра, которое соответствует имени объекта HTML.

function encodeHTML(s) {
    return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/"/g, '&quot;');
}

htmlData[i++]= '<iframe id="mapframe" src="'+encodeHTML(url)+'" frameborder="0" style="width:330px;height:300px"></iframe>';

(Обычно я предпочитаю создавать элементы с помощью методов DOM, чтобы избежать явного HTML-кодирования.)

2
ответ дан 3 September 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: