[英]My Javascript code does not work in IE but works fine in other browsers
[英]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').value
是undefined
。 您實際上是在嘗試獲取元素的文本內容嗎? 如果是這樣,那么這可行:
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.