Nivo滑块不能在IE8中工作
问题描述:
我在我的公司网站上遇到一些与jquery nivo滑块有关的问题。Nivo滑块不能在IE8中工作
首先,该网站由一家公司托管,他们提供了一个内部cms,我们无法更改任何内容。这就是为什么我没有任何权限来加载头标记中的任何内容,并且无法上传除该服务器上的图像以外的任何文件。
因此,我找到了一个JavaScript,后来在头部加载CSS文件。那么所有这一切都可以在每个浏览器(Chrome,FF,IE6,IE9)正常工作,除了IE8 NivoSlider只加载第一个图像,显示没有标题,没有导航。
我不知道为什么它会这样做,因为如果我在本地执行代码(如下所示),它可以工作(所有文件都存储在本地)。
<script type="text/javascript" src="slider/scripts/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="slider/scripts/jquery.nivo.slider.js"></script>
<script type="text/javascript">
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined") {
document.getElementsByTagName("head")[0].appendChild(fileref)
}
}
function toggle() {
var slider = document.getElementById("slider");
slider.style.display = "block";
}
$(window).load(
function() {
loadjscssfile("slider/css/nivo-default.css", "css");
loadjscssfile("slider/css/nivo-slider.css", "css");
toggle();
$('#slider').nivoSlider();
}
);
</script>
主控器使用原型JS框架他们的CMS,所以我想也许这会导致某种形式的干扰。其实,如果我打开Devtools在IE8我显示我在由主控器
var nodes = $(element).getElementsByTagName('*');
className = ' ' + className + ' ';
for (var i = 0, child, cn; child = nodes[i]; i++) {
if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
(classNames && classNames.all(function(name) {
return !name.toString().blank() && cn.include(' ' + name + ' ');
}))))
elements.push(Element.extend(child));
}
它不喜欢这些行提供的文件的Prototype.js一些错误,它说,像(德国翻译)“的对象不支持此值或方法“
您可以看到原始主页和代码XXX并自行尝试。我希望你能帮我解决我的问题。
答
与Chrome的开发者工具检查,我可以看到的唯一问题是这样的:
var nivo-child = $(this);
你不能在变量名破折号,将其更改为nivo_child
或nivoChild
。
要修复第二个错误,您需要使用jQuery.noConflict()
。
对不起,我在调整。我改变了它形成孩子BC我认为这是造成干扰。现在我将把它留给你们。 – BorisB
我编辑了我的答案。 – thirtydot
ty,修复了第二个错误,但在IE8中仍存在相同问题 – BorisB