2013-03-01 149 views
0

我想運行一個jQuery/Ajax調用,在IE9,Chrome瀏覽器,FF,歌劇 工作然而,在IE8和UE7的indexOf不工作在IE 8/7

失敗代碼:

$.ajax({url:plink, 
     success: function(result) { 
     ppriser = result.split("**")[1]; 
     plabels = result.split("**")[2]; 
     pgrupper = result.split("**")[3]; 
     priser = ppriser.split("!#"); 
     labels = plabels.split("!#"); 
     grupper = pgrupper.split("!#"); 
     $("td .pricetag").each(function() { 
      var slutpris = "999999"; 
      var slutlabel = ""; 
      for(i=1;i<priser.length;i++) { 
      str = String($(this).attr('group')); 
      grp = String(grupper[i]); 
      pos = grp.indexOf(str); 
      if(grp==str || pos>=0) { 
       j=parseInt(priser[i]); 
       k=parseInt(slutpris); 
       if(j!=0 && j<k) { 
       slutpris = priser[i]; 
       slutlabel = labels[i]; 
       } 
       if(slutlabel=="") { slutlabel = "fra:"; } 
       if(slutpris!="999999") { 
       $(this).html(slutpris); 
       $(this).prev('td').html(slutlabel); 
       } 
       if(slutpris=="999999") { 
       $(this).css('display','none'); 
       $(this).closest('.pris').css('display','none'); 
       } 
      } 
      } 
     }); 
     }}); 

我已經試過各種連擊: 緩存:假的, 類型: 「POST」, 類型: 「GET」, 數據: 「HTML」, 數據類型: 「HTML」, 超時:10000,

鏈路PLINK的一個例子:

Default.aspx?ID=148&fb=true&mode=-1&[email protected]@SHOP5,[email protected]@SHOP5, 

jQuery的鏈接:

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 

AJAX的腳本的鏈接被放置在頁面的末尾。

+0

也許網址沒有得到正確編碼......'@'應該編碼爲'%40'。 – Christoph 2013-03-01 11:48:17

+1

您在IE7/8上的控制檯中是否出現錯誤? – 2013-03-01 11:48:19

+0

什麼是URL的響應內容類型「Default.aspx?ID = 148&fb = true&mode = -1&groupid = 1210405 @@ SHOP5,1210103 @@ SHOP5」?如果是application/json,那麼IE8/7將無法按預期工作。它應該是文本/純文本。 – 2013-03-01 11:50:07

回答

1

我試圖轉換爲字符串中的幾個wasy(因爲IE 8/7不喜歡indexOf數組對象),但無濟於事。此後,我找到了這個解決方案。

if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function(obj, start) { 
     for (var i = (start || 0), j = this.length; i < j; i++) { 
     if (this[i] === obj) { return i; } 
     } 
     return -1; 
    } 
    } 

我測試是否支持indexOf - 如果沒有創建函數。

+0

hm,我以爲'grp'將是一個字符串而不是數組......在IE9中添加了'Array.prototype.indexOf'支持。 – Christoph 2013-03-01 12:39:36

+0

grp應該是一個字符串......但我試過String(var)和var.toString但沒有運氣。實現上面的工作... – 2013-03-01 12:42:32

+0

'String(var)'和'var.toString'都應該給你一個數組的字符串表示。我不知道你在那裏做錯了什麼... – Christoph 2013-03-01 12:59:20