2012-02-01 115 views
0

爲什麼我討厭IE瀏覽器因爲不同而另一個原因。我有這樣的代碼:爲什麼這個JavaScript在IE中不起作用,但在其他瀏覽器中起作用?

var friends = document.getElementById('friendsEmail').value; 
... 
var emailArray=new Array(); 
emailArray=String(friends).split(','); //error here 

這適用於所有其他瀏覽器。實際上,我只添加了Array聲明和明確的String轉換,以使其在IE中可以正常工作。不過,我仍然得到這個錯誤

網頁錯誤的詳細信息

用戶代理:Mozilla的/ 4.0(兼容; MSIE 8.0; Windows NT的5.1; 三叉戟/ 4.0; .NET4.0C; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; .NET4.0E; .NET CLR 1.1.4322)時間戳:Wed,1 Feb 2012 22:24:15 UTC

消息:對象不支持此屬性或方法行:59字符: 4代碼:0

是什麼IE不喜歡這個?我在做什麼明顯愚蠢,我沒有看到?

編輯

這就是我所做的最初,導致IE錯誤:

var emailArray=friends.split(','); 

這也使我的錯誤在IE

EDIT 2

我對不起,夥計們。事實證明,服務器正在緩存.js文件的舊版本,並且我所看到的錯誤行是不正確的......我對因此浪費你的時間表示歉意。這個錯誤原來是完全不同的。對於那些很好奇,它實際上因爲這條線而失敗

emailArray[count]=emailArray[count].trim(); 

雖然我已經解決了這個問題。

+0

因此,也許你可以刪除「爲什麼我討厭IE」的短語,因爲它與IE沒有任何關係? – RobG 2012-02-02 01:12:05

+0

@RobG我可以...但它仍然是IE不同,導致問題。只是一個不同的功能。 – Rondel 2012-02-02 02:37:20

回答

1

基本類型的構造函數。你已經有一個字符串在friends變量,所以只是分裂

變化

emailArray = String(friends).split(','); //error here 

emailArray = friends.split(','); //should work 
+0

我原本是這樣做的,這也給我錯誤。我只在數組和字符串中添加了這個問題。 – Rondel 2012-02-01 22:50:40

+0

堅持這段代碼 - 你得到的錯誤是什麼? – 2012-02-01 22:53:15

+0

對象不支持此屬性或方法:在IE8和IE7中 – Rondel 2012-02-01 22:54:27

2

split()創建自己的陣列,所以離開了emailArray=new Array();

你可以這樣做通常不建議

emailArray = document.getElementById('friendsEmail').value.split(",") 
+0

沒有數組,我得到相同的錯誤。我在IE中發現錯誤後添加了'Array'聲明。 – Rondel 2012-02-01 22:48:17

+0

這是真的,但與OP的問題無關。 – 2012-02-01 23:14:16

1

Split在IE瀏覽器不達標。我使用這個library進行跨瀏覽器分割。

+0

我確實看到了這個庫,並考慮到了它。我想先嚐試修復javascript,但最後我可能會使用它。 – Rondel 2012-02-01 22:59:20

+1

Steven Levithan的'split()'替換很好,我推薦它,但對於這種特殊情況是不必要的。 IE在分割字符串而不是正則表達式時很好。 – 2012-02-01 23:02:04

0

我強烈懷疑實際問題是document.getElementById('friendsEmail').valueundefined。你是否真的想要獲取元素的文本內容?如果是這樣,那麼這個工程:

var friends = document.getElementById("friendsEmail"); 
var emailArray = friends.innerText.split(","); 

注意,基於文字的一個簡單的測試用例 - 像"str,str1,str2".split(",") - 將很快有證明split不是問題。把事情減少到最小的可測試單位總是最好的。否則,你只是在猜測錯誤的來源。

演示:http://jsfiddle.net/JHZJe/

0

我看到你的代碼沒有問題。我認爲你可能在檢索的價值上存在問題,因此friends不是你認爲的值。您可以在此的jsfiddle一般概念,你正在使用的作品在IE中即見:

var friends = document.getElementById('friendsEmail').value; 
var emailArray = friends.split(','); 

你可以看到它在這裏工作:http://jsfiddle.net/jfriend00/s9S99/

所以,我認爲這個問題正在檢索你的價值。那肯定不是你想象的那樣(也許它有時候是空的)。

相關問題