浏览器兼容性(Javascript)
Browser Compatibility (Javascript)
我正在用常规Javascript重写一个网站的脚本,以加快颜色选择器,但是如果你在Firefox和IE中查看它,它不起作用(但它在Chrome中工作得很好)。我只是希望能得到一些帮助:
https://www.sinister.ly/index.php<div id="theme_styler">
<div class="option default" id="red"></div>
<div class="option" id="green"></div>
<div class="option" id="blue"></div>
</div>
似乎有问题的特定代码:
var optionalStylesheet = document.getElementsByClassName("stylesheet_optional");
var blueStylesheet = document.getElementById("stylesheet_blue");
var greenStylesheet = document.getElementById("stylesheet_green");
var storedThemeColor = readCookie('themeColor');
var currentFiconPath;
function changeColor(path) {
var all = document.getElementsByClassName("ficon");
for (var i=0, max=all.length; i < max; i++) {
all[i].src = all[i].src.replace(/ficons'/((green|blue)'/)?/, 'ficons/' + path + '/');
}
}
在header中:
// AD JS
document.getElementsByClassName = function(cl) {
var retnode = [];
var elem = this.getElementsByTagName('*');
for (var i = 0; i < elem.length; i++) {
if((' ' + elem[i].className + ' ').indexOf(' ' + cl + ' ') > -1) retnode.push(elem[i]);
}
return retnode;
};
function readCookie(name) {
var ca = document.cookie.split(';');
var nameEQ = name + "=";
for(var i=0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
}
return null;
}
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString();
document.cookie = cname + "=" + cvalue + "; " + expires;
}
var optionalStylesheet = document.getElementsByClassName("stylesheet_optional");
var blueStylesheet = document.getElementById("stylesheet_blue");
var greenStylesheet = document.getElementById("stylesheet_green");
var storedThemeColor = readCookie('themeColor');
var currentFiconPath;
function changeColor(path) {
var all = document.getElementsByClassName("ficon");
for (var i=0, max=all.length; i < max; i++) {
all[i].src = all[i].src.replace(/ficons'/((green|blue)'/)?/, 'ficons/' + path + '/');
}
}
var gs = document.createElement("link");
gs.type = "text/css";
gs.className = "stylesheet_optional";
gs.id = "stylesheet_blue";
gs.rel = "stylesheet";
gs.title = "mystyle";
gs.href = "images/sinisterly/color_blue.css";
var bs = document.createElement("link");
bs.type = "text/css";
bs.className = "stylesheet_optional";
bs.id = "stylesheet_green";
bs.rel = "stylesheet";
bs.title = "mystyle";
bs.href = "images/sinisterly/color_green.css";
var head = document.getElementsByTagName("head")[0];
var links = head.getElementsByTagName("link");
for(var x=0; x<links.length; x++) {
var href = links[x].href;
if(href.indexOf('/color_green.css') >0 || href.indexOf('/color_blue.css') >0){
head.removeChild(links[x]);
}
}
if (storedThemeColor == "green"){
head.appendChild(bs);
} else if (storedThemeColor == "blue") {
head.appendChild(gs);
}
// End AD JS
在页脚
if (storedThemeColor == null) {
setCookie('themeColor', 'default', 7);
currentFiconPath = '';
return currentFiconPath;
} else if (storedThemeColor != null) {
if (storedThemeColor == 'default') {
currentFiconPath = '';
optionalStylesheet.disabled = true;
return currentFiconPath;
} else if (storedThemeColor == 'blue') {
currentFiconPath = "blue";
changeColor(currentFiconPath);
optionalStylesheet.disabled = true;
blueStylesheet.disabled = false;
return currentFiconPath;
} else if (storedThemeColor == 'green') {
currentFiconPath = "green";
changeColor(currentFiconPath);
optionalStylesheet.disabled = true;
greenStylesheet.disabled = false;
return currentFiconPath;
}
}
变化:
var blueStylesheet = document.getElementById("#stylesheet_blue");
var greenStylesheet = document.getElementById("#stylesheet_green");
:
var blueStylesheet = document.getElementById("stylesheet_blue");
var greenStylesheet = document.getElementById("stylesheet_green");
样式表id开头没有#
我不知道为什么它在Chrome中工作-当我尝试它时,我在Chrome中得到undefined
。
相关文章:
- wordpress和javascript插件的兼容性
- RSA 公钥与 JavaScript 和 C# 的兼容性
- GWT如何为每个浏览器提供正确的Javascript代码,例如执行i18n和浏览器兼容性
- 一组图形的Javascript放大镜 - 跨浏览器兼容性
- JavaScript 浏览器兼容性问题
- Javascript 与 Microsoft Dynamics CRM 2013 的兼容性错误
- jQuery 和 JavaScript onmouseover 兼容性
- IE9 兼容性视图 Javascript 问题
- 下拉菜单 - Javascript 与仅 CSS - 选择哪个桌面 - 移动兼容性
- Javascript和复选框与移动设备的兼容性
- 浏览器之间的javascript鼠标事件兼容性问题
- 运行javascript的IE 8中的兼容性问题
- 如何在Javascript中以编程方式打开IE9兼容性视图
- JavaScript onClick更改画布中的图像兼容性
- 带有javascript的网站;我不在IE9工作,但在IE9's兼容性模式-如何强制兼容性视图
- JavaScript兼容性问题
- HTA和Javascript兼容性.Javascript不能在HTA中工作
- 良好的跨浏览器javascript兼容性/增强库
- Windows Phone Web浏览器和Javascript兼容性
- Php's json_decode和firefox's的javascript兼容性