2010-09-09 107 views
0

我已經編碼,取決於下拉選定的項目,加載一些進一步的控制(單獨的內容索引== 0與索引> = 1)。初始選擇的選定項目在服務器端預先設定。我已經和重新加載/緩存問題,用戶改變但不提交表單,然後單擊重新加載。最初,我從服務器加載默認啓動,但瀏覽器重新加載導致不正確的表單狀態,因爲它(尤其是IE)記住了最後選擇的 - 但未提交 - 控制對象,如果用戶點擊刷新。所以,我有這個代碼。在其他瀏覽器中工作正常,但在IE中,不呈現內容。jQuery負載不反映IE瀏覽器

$(window).load(function(){ 
    $.ajaxSetup({cache: false}) 
    var theProduct = ''; 
    if ($('#chooseProduct').attr('selectedIndex') > 0) { 
     theProduct = '&product=' + $('#chooseProduct').val(); 
    } 
    setEvent($('#chooseProduct').attr('id'), 'product_req'); 
    $('#productSubselection').load(
     '/netpub/server.np?base&site=ddfa&catalog=catalog&template=regions.np' + theProduct//, 
    ); 
    $(document).ready(function(){ 
     $('#chooseProduct').change(function(Event){ 
      setEvent($('#chooseProduct').attr('id'), 'product_req'); 
      $('#productSubselection').load(
       '/netpub/server.np?base&site=ddfa&catalog=catalog&template=regions.np', $(this).serialize()//, 
      ); 
     }); 
     $('#browseall').click(function(Event){ 
      deleteCookie('product_req'); 
     }); 
    }); 
}); 

使用記錄/警報,我可以確認IE正在呼叫正確的內容。如果我把AJAX調用的URL放在一個正常的IE窗口中,我會得到預期的內容 - 格式良好的HTML - 返回。 IE或任何其他瀏覽器都不會拋出任何JS錯誤。我已經嘗試將代碼的最初部分放入「準備好」事件中,但它沒有區別。我做了什麼明顯錯誤?

+0

我認爲這可能只是第一行。如果我將它改爲:$(window).load(function(Event){它似乎工作,但所有其他代碼在加載時運行,所以'Event'有什麼不同? – mwra 2010-09-09 19:55:13

+0

或者Firefox和Chrome現在加載在頁面加載/刷新時添加Ajax內容Safari和IE不會。 – mwra 2010-09-09 20:13:43

回答

0

對獨白的aplogies,只是給這個答案系主題。事實證明,這個問題實際上是在theProduct參數字符串中與load URL一起傳遞的空格錯誤編碼(mea culpa)。結果很微妙,不會在我期望的地方拋出錯誤,所以導致我認爲這是一個jQuery /事件問題。經過排序,我能夠將所有內容都放在$(document).ready(function()之內,jQuery按照最初的設想工作。道德?請記住在向GET查詢添加字符串時要勤於文本編碼。