簡體   English   中英

為什么此javascript在IE中不起作用,而在其他瀏覽器中起作用?

[英]Why does this javascript not work in IE but works in other browsers?

我討厭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; Trident / 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)時間戳:星期三,2012年2月1日22:24:15 UTC

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

IE對此不滿意? 我是否正在做一些我沒有看到的愚蠢的事情?

編輯

這是我最初導致IE錯誤的操作:

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

這也給我在IE中的錯誤

編輯2

對不起,伙計們。 原來服務器正在緩存.js文件的較舊副本,而我正在查看的錯誤行是不正確的...對於在此浪費您的時間,我深表歉意。 錯誤被證明是在完全不同的行上。 對於那些好奇的人,實際上是因為這條線而失敗

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

我已經解決了這個問題。

split()創建自己的數組,因此省略emailArray=new Array();

你可以做

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

通常不建議使用原始類型的構造函數。 您的friends變量中已經有一個字符串,因此將拆分

更改

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

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

在IE上Split不是標准的。 我使用此進行跨瀏覽器拆分。

我強烈懷疑實際問題是document.getElementById('friendsEmail').valueundefined 您實際上是在嘗試獲取元素的文本內容嗎? 如果是這樣,那么這可行:

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

請注意,對字符串文字的簡單測試用例(例如"str,str1,str2".split(",")將很快證明split不是問題。 始終最好將事物減少到最小的可測試單元。 否則,您只是在猜測錯誤的來源。

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

我認為您的代碼沒有問題。 我認為您所獲取的價值可能有問題,以致friends不是您想的那樣。 您可以在此jsFiddle中看到您使用的一般概念在IE中有效:

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

您可以在這里看到它的工作: http : //jsfiddle.net/jfriend00/s9S99/

因此,我認為問題在於獲取您的價值。 那一定不是你想的那樣(也許有時候是空的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM