JS在本地测试所有浏览器正常,服务器就报错。【急】
报错:
网页错误详细信息
用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; InfoPath.2)
时间戳: Tue, 23 Nov 2010 02:27:10 UTC
消息: 'current.style' 为空或不是对象
行: 56
字符: 5
代码: 0
前台:
- C# code
<div id="index-splash-block" class="index-splash-block"> <div id="feature-slide-block" class="feature-slide-block"> <asp:Repeater ID="rep_prod1" runat="server" EnableTheming="true" EnableViewState="false"> <ItemTemplate> <div class="feature-slide-preview" style="display: none;"> <img src='uploads/Image/<%# DataBinder.Eval(Container, "DataItem.TitlePicUrl") %>' width="230" height="220" alt="" /> </div> </ItemTemplate> </asp:Repeater> <div id="feature-slide-list" class="feature-slide-list"> <a href="#" id="feature-slide-list-previous" class="feature-slide-list-previous"></a> <div id="feature-slide-list-items" class="feature-slide-list-items"> </div> <a href="#" id="feature-slide-list-next" class="feature-slide-list-next"></a> </div> </div> <script type="text/javascript"> initFeatureSlide(); </script>
JS如下:
- JScript code
function initFeatureSlide(strId) {
var domRoot = document.getElementById('feature-slide-block');
if (!domRoot) return;
domRoot.list = [];
var children = domRoot.childNodes;
var offset = 0;
for (var i in children) {
var domItem = children[i];
if (domItem && domItem.className == 'feature-slide-preview') {
domRoot.list.push(domItem);
domItem.offset = offset;
offset++;
}
}
var domList = document.getElementById('feature-slide-list-items');
if (!domList) return;
domList.innerHTML = '';
domList.items = [];
for (var i = 0; i < domRoot.list.length; i++) {
var temp = domRoot.list[i];
var domItem = document.createElement('a');
domList.appendChild(domItem);
domItem.href = '#';
domItem.onclick = function(){
return false;
}
domList.items.push(domItem);
domItem.offset = i;
}
var domPreviousBtn = document.getElementById('feature-slide-list-previous');
var domNextBtn = document.getElementById('feature-slide-list-next');
domPreviousBtn.onclick = function(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
var offset = domList.current.offset;
offset--;
if (offset >= domList.items.length || offset < 0)
offset = domList.items.length - 1;
target.blur();
doSlide(offset);
return false;
}
domNextBtn.onclick = function(evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
var offset = domList.current.offset;
offset++;
if (offset >= domList.items.length || offset < 0)
offset = 0;
target.blur();
doSlide(offset);
return false;
}
domRoot.current = domRoot.list[0];
domList.current = domList.items[0];
domRoot.current.style.display = 'block';
domList.current.className = 'current';
function doSlide(offset, timeStamp) {
if (
timeStamp &&
(
domRoot.boolHover ||
timeStamp != domRoot.timeStamp
)
) return;
if (typeof(offset) != 'number') {
offset = domList.current.offset - (-1);
if (offset >= domList.items.length || offset < 0)
offset = 0;
}
domRoot.current.style.display = 'none';
domList.current.className = '';
domRoot.current = domRoot.list[offset];
domList.current = domList.items[offset];
domRoot.current.style.display = 'block';
domList.current.className = 'current';
if (domRoot.boolHover) return;
var now = new Date();
domRoot.timeStamp = now.valueOf();
window.setTimeout(function() {
doSlide(null, now.valueOf());
}, 5000);
}
domList.onmouseover = domList.onclick = function (evt) {
evt = evt || window.event;
var target = evt.target || evt.srcElement;
while (target && target != domList) {
if (target.tagName.toLowerCase() == 'a') {
target.blur();
doSlide(target.offset);
return false;
}
target = target.parentNode;
}
}
domRoot.onmouseover = domRoot.onmousemove = function() {
domRoot.boolHover = true;
}
domRoot.onmouseout = function(evt) {
domRoot.boolHover = false;
var now = new Date();
domRoot.timeStamp = now.valueOf();
window.setTimeout(function() {
doSlide(null, now.valueOf());
}, 5000);
}
var now = new Date();
domRoot.timeStamp = now.valueOf();
window.setTimeout(function() {
doSlide(null, now.valueOf());
}, 5000);
}
[解决办法]
<script type="text/javascript"> window.onload= initFeatureSlide; </script>
这样试试
[解决办法]
检查下面这一段返回数据了吗?
<asp:Repeater ID="rep_prod1" runat="server" EnableTheming="true" EnableViewState="false">
<ItemTemplate>
<div class="feature-slide-preview" style="display: none;">
<img src='uploads/Image/<%# DataBinder.Eval(Container, "DataItem.TitlePicUrl") %>'
width="230" height="220" alt="" />
</div>
</ItemTemplate>
</asp:Repeater>
[解决办法]
不管怎样,在domRoot.current.style之前,检测一下domRoot.current是否为空,不为空再执行后面这些代码。
[解决办法]
lz,我碰到过类似的问题,不知道你情况和我是不是一样的。我当时是因为HTML加载js文件,这个js文件的编码不是utf-8(我的HTML是UTF-8)
你将js代码全部包含在HTML中,或者将那个js文件用记事本打开,另存为,编码选择utf-8就正常了。当时这个问题也折腾了我好久。。