在工作中,我們有一個使用IP生成的報告。您可以在該報告中點擊一個鏈接,該鏈接將打開一個新窗口並調用一個腳本,該腳本將帶有指向每個IP來源的谷歌地圖。根據報告,它可以返回很多IP(大約有150次)。因此,爲了解決這個問題,我們必須將數據發佈到該腳本,因爲使用GET,有時會超出URL的最大大小。IE8中的jQuery動態表單不能處理大量數據
所以我正在做的是當它鏈接它點擊打開地圖,我調用一個Javascript函數,我寫了IP,創建一個帶有目標屬性的窗體標籤,它指向新窗口被打開,附加到當前頁面,然後將IP的隱藏輸入添加到該表單。然後我打開具有指定名稱的新窗口並提交表單。代碼如下所示:
function submitToWindow(url, nameValuePairs) {
var form = document.createElement('form');
form.setAttribute('action', url);
form.setAttribute('target', 'newWindow');
form.setAttribute('method', 'POST');
for (i=0; i < nameValuePairs.length; i++) {
var nameValue = nameValuePairs[i].split('=');
var input = $('<input name="' + nameValue[0] + '" type="hidden" value="' + nameValue[1] + '"/>');
form.appendChild(input[0]);
}
document.body.appendChild(form);
window.open('http://fakeurl.com', 'newWindow');
form.submit();
}
我創建使用jQuery隱藏的輸入元素的跨瀏覽器的兼容性,因爲IE8似乎當你調用blah.setAttribute(「名」,「值」)不喜歡它;它將「name」屬性變成「submitName」。提交表單時導致問題。
這對FF甚至IE8很好,當沒有大量的隱藏輸入必須被創建。但是,當我們獲得大約150個隱藏的輸入項時,IE8中似乎沒有任何事情發生。我沒有得到任何腳本錯誤或任何東西,就好像點擊地圖鏈接被忽略了一樣。我猜這裏有一些故障。
有沒有人有關於如何做得更好的建議?
你能給我們一些樣品名稱值對嗎? – 2010-02-13 00:57:50