我在公司网站上遇到了一些关于jquery nivo 滑块的问题。
首先,该网站由一家提供内部 cms 的公司托管,我们无法更改任何内容。这就是为什么我没有任何权限在 Head-Tag 中加载任何内容,也无法在该服务器上上传除图像之外的任何文件
所以我找到了一个 Javascript,它之后会在头部加载 CSS 文件。除了IE8之外,所有这些都在每个浏览器(Chrome、FF、IE6、IE9)中都能正常工作,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>
Hoster 为他们的 CMS 使用Prototype JS 框架,所以我认为这可能会导致某种干扰。实际上,如果我在 IE8 中打开 Devtools,我会在 Hoster 提供的 Prototype.js 文件中显示一些错误
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));
}
它不喜欢这些行,它说(从德语翻译)“对象不支持此值或方法”
可以看原主页和代码XXX,自己试试看。我希望你能帮助我解决我的问题。