首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

JS在本地测试所有浏览器正常,服务器就报错

2012-06-15 
JS在本地测试所有浏览器正常,服务器就报错。【急】报错:网页错误详细信息用户代理: Mozilla/4.0 (compatible

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就正常了。当时这个问题也折腾了我好久。。

热点排行