(function (window, undefined){
var _eles = [],
_target, source, mobile, destory;
if (!document.getElementsByClassName) {
document.getElementsByClassName = function (classname) {
var elArray = [];
var tmp = document.getElementsByTagName("*");
var regex = new RegExp("(^|\\s)" + classname + "(\\s|$)");
for (var i = 0; i < tmp.length; i++) {
if (regex.test(tmp[i].className)) {
elArray.push(tmp[i]);
}
}
return elArray;
};
}
//if ((/msie 7/gi).test(navigator.appVersion)) {
// console.log('true')
//}
var uTube = {
init: function (opts) {
var nodes = ["www.youtube.com/watch?v=", "youtu.be/", "www.youtube.com/embed/", "www.youtube.com/v/", "youtube.com/watch?feature"],
vers = opts.version,
i;
switch (vers) {
case "phpbb3":
vers = 'content';
break;
case "phpbb2":
vers = 'postbody';
break;
case "punbb":
vers = 'entry-content';
break;
case "invision":
vers = 'postbody';
break;
}
_target = document.getElementsByClassName('post');
for (i = 0; i < _target.length; i++) {
_eles.push(_target[i].getElementsByClassName(vers));
}
console.log(_eles);
return {
source: function (opt) {
console.log(_eles);
},
mobile: function (opt) {
console.log('we are now' + opt.text);
return {
destroy: function() {
console.log('destroyed');
}
};
}
};
}
};
return (window.utube = window._$ = uTube.init);
})(window);
我試圖找到一種方法來測試我的代碼在瀏覽器上可能不支持我的一些方法。因爲當我嘗試在IE7和8我得到一個錯誤說Unable to get property 'mobile' of undefined or null reference
測試IE7 + javascript插件
代碼發起看起來是這樣的:
_$({
version:"phpbb3"
}).mobile({text:"mobile version"}).destroy();
眼下的屬性只是記錄用於測試目的某些事情。雖然就像我說過的,它在IE7或8中不起作用,但在7和8完成之前還沒有測試過9。是否有什麼特別的,我應該改變IE7 +在我的代碼,你可以看到,如果沒有的話,是否有一個網站,可以給我一個近距離的什麼是錯的?
感謝@RobertLevy我修復了休息和退貨的一個主要問題。雖然我正在搞清楚對象的getElementsByClassName的最佳方法,以及... – EasyBB