2010-05-07

prototype.js 1.6.1 與 jQuery 1.3.2 再 IE8 上的問題與解決方式

IE8: fix for coexistence problem prototype.js (1.6.1) with jQuery (1.3.2)

我在專案上使用了, prototype.js version 1.6.1, 與 jQuery version 1.3.2

再 IE8 上遇到了問題,

IE8 說 : prototype.js 行 4811 有問題

var nodes = $(element).getElementsByTagName('*');

修正方式, 找到 prototype.js 行 4817 加入以下 script
if (Prototype.Browser.IE) { if (className == 'e') return []; }

就可以避開這個問題

想知道更多原因請看叁考連結

http://www.devcomments.com/IE8-fix-for-coexistence-problem-prototype-js-1-6-1-with-jQuery-1-3-2-at7993.htm

2010-05-05

修正 IE 上, 無法使用 document.getElementsByTagName 來取得 TagName

若你再, IE 上撰寫 JavaScript, 用到 document.getElementsByTagName,
發生了錯誤, 
你可以嘗試加入以下的 函數來進行修正

if(typeof(window.external) != 'undefined'){    
    document.getElementsByName = function(name, tag){
        if(!tag){
            tag = '*';
        }
        var elems = document.getElementsByTagName(tag);    
        var res = []
        for(var i=0;i<elems.length;i++){
            att = elems[i].getAttribute('name');
            if(att == name) {
                res.push(elems[i]);
            }
        }
        return res;
    }
}

PS : 我忘了版本, IE6 or IE7, 試試看.