Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/444.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我得到了一个“答案”;“所需对象”;错误消息_Javascript_Asp.net - Fatal编程技术网

Javascript 我得到了一个“答案”;“所需对象”;错误消息

Javascript 我得到了一个“答案”;“所需对象”;错误消息,javascript,asp.net,Javascript,Asp.net,我想在我们网站的主页上贴一个新闻滚动条 我对收到的错误消息感到有点困惑,因为我在一台电脑上收到了错误消息,但在另一台电脑上没有: 所需对象 我正在使用下面的代码,但当我在default.aspx页面上将此文件用作web用户控件时,下面的一行不断抛出所需对象错误: el2.style.height='<%=box_height %>'; el2.style.height=''; 因此,新闻不会滚动 非常感谢您的帮助 <a href="#"><uc1:NewsScr

我想在我们网站的主页上贴一个新闻滚动条

我对收到的错误消息感到有点困惑,因为我在一台电脑上收到了错误消息,但在另一台电脑上没有:

所需对象

我正在使用下面的代码,但当我在
default.aspx页面上将此文件用作web用户控件时,下面的一行不断抛出
所需对象
错误:

el2.style.height='<%=box_height %>';
el2.style.height='';
因此,新闻不会滚动

非常感谢您的帮助

<a href="#"><uc1:NewsScroller ID="NewsScroller1" runat="server" /></a>

<script language="VB" runat="server">
    Public box_TextColor As String = "black"
    Public box_height As Integer = 150
    Public box_width As Integer = 166
    Public box_padding As String = "0 0 0 20"    
</script>

<script type="text/javascript" for="window" event="onload">
// <!CDATA[
    return window_onload()
// ]]>
</script>

<script type="text/javascript">
// <!CDATA[

// <!--
    var speed = 2;
    function init(){
        var el = document.getElementById("newsdiv");
        el.style.overflow = 'hidden';
        el.style.height='<%=box_height %>';
        el.style.width='<%=box_width %>';
        el.style.padding='<%=box_padding %>';
        el.style.color='<%=box_TextColor %>';

        var el2 = document.getElementById("newsdiv-p1");
        el2.style.height='<%=box_height %>';
        var el3 = document.getElementById("newsdiv-p2");

        el3.style.height='<%=box_height %>';  
        //alert(document.getElementById("newsdiv-p2").style.height+document.getElementById("newsdiv-p2").style.height);
        scrollFromBottom();  
    }

    var go = 0;
    var timeout = '';
    function scrollFromBottom(){

        clearTimeout(timeout);
        var el = document.getElementById("newsdiv");
        if(el.scrollTop >= el.scrollHeight-'<%=box_height %>'){
            el.scrollTop = 0;
        };

        el.scrollTop = el.scrollTop + speed;
        if(go == 0){
            timeout = setTimeout("scrollFromBottom()",50);
        };
    }

    function stop(){
        go = 1;
   }

   function startit(){
       go = 0;
      scrollFromBottom();
    }
// -->

    function window_onload() {
    init();

}
// ]]>
</script>


<%--<asp:Panel ID="newsdiv" runat="server" onmouseout="startit();" onmouseover="stop();">--%>
    <div id="newsdiv"  onmouseout="startit();" onmouseover="stop();"  >
        <p id="newsdiv-p1" class="spacer"></p>
        <asp:Label ID="lblNews" runat="server" Text="News..."></asp:Label>
        <p id="newsdiv-p2" class="spacer"></p>
    </div>
<%--</asp:Panel>--%>

公共框\u text颜色为String=“黑色”
公共框高度为整数=150
公共框的宽度为整数=166
公共框\u填充为String=“0 20”
// 
// 
函数窗口_onload(){
init();
}
// ]]>

@Marcel,我想你指的是源代码(右键单击,查看源代码并复制代码)

如果是的话,就在这里,谢谢

    <script type="text/javascript" for="window" event="onload">
// <!CDATA[
return window_onload()
// ]]>
</script>

<script type="text/javascript">
// <!CDATA[

// <!--
var speed = 2;

$(document).ready(function init(){
  var el = document.getElementById("newsdiv");
  el.style.overflow = 'hidden';
  el.style.height='150';
  el.style.width='166';
   el.style.padding='0 0 0 20';
   el.style.color='black';

var el2 = document.getElementById("newsdiv-p1");

  el2.style.height='150';
var el3 = document.getElementById("newsdiv-p2");

  el3.style.height='150';  
  //alert(document.getElementById("newsdiv-p2").style.height+document.getElementById("newsdiv-p2").style.height);
  scrollFromBottom();


 }); 
var go = 0;
var timeout = '';
function scrollFromBottom(){

  clearTimeout(timeout);
  var el = document.getElementById("newsdiv");
  if(el.scrollTop >= el.scrollHeight-'150'){
    el.scrollTop = 0;

  };
  el.scrollTop = el.scrollTop + speed;
  if(go == 0){
    timeout = setTimeout("scrollFromBottom()",60);
  };
}

function stop(){
  go = 1;
}

function startit(){
  go = 0;
  scrollFromBottom();
}
// -->

function window_onload() {
init();

}

// ]]>
</script>
<div id="newsdiv"  onmouseout="startit();" onmouseover="stop();"  >
<p id="newsdiv-p1" class="spacer">
    </p>
    <span id="NewsScroller1_lblNews"><a href='#' OnClick=javascript:window.open('newsDetail.aspx?NewsID=10','NewsDetail','width=800,height=600;toolbar=no;');><font face='verdana' size='2' color='#184D68'>Steve's Birthday</font><br><br><a href='#' OnClick=javascript:window.open('newsDetail.aspx?NewsID=15','NewsDetail','width=800,height=600;toolbar=no;');><font face='verdana' size='2' color='#184D68'>Our Anniversary</font><br><br><a href='#' OnClick=javascript:window.open('newsDetail.aspx?NewsID=14','NewsDetail','width=800,height=600;toolbar=no;');><font face='verdana' size='2' color='#184D68'>Jessie's Birthday</font><br><br></span>
    <p id="newsdiv-p2" class="spacer"></p>
</div>

// 
// 
函数窗口_onload(){
init();
}
// ]]>

史蒂夫的生日

我们的周年纪念

杰西的生日


我仍在试图了解这个伟大的论坛是如何运作的。昨天,我看到一个按钮,上面写着“添加评论”。从今天起,我一直没能看到它。我想我的问题是,如何重新登录以便添加评论等?登录似乎是cookie驱动的,这意味着一旦关闭浏览器,您的特权就会消失,否?

将脚本标记放在newsDiv之后。我认为问题的出现是因为html还没有呈现。

在开始与DOM交互之前,您需要确保DOM已经准备好

我建议使用jQuery并在事件处理程序中包装DOM交互代码,如下所示:

$(document).ready(function(){
   init();
});
这样,您就可以确保在开始引用元素之前,所有元素都已存在,如中所述:

传递给.ready()的处理程序为 保证在合同生效后执行 DOM已经准备好了,所以这通常是 附加所有其他活动的最佳位置 处理程序并运行其他jQuery代码


在这种情况下,错误消息“Object required”表示变量
el2
不包含
HTMLElement
对象

元素的ID区分大小写,因此无法获取元素

<p id="newsdiv-p1" class="spacer"></p>
此外,您不能访问尚未渲染的元素。将函数放入
onload
处理程序中或标记之后

顺便说一句,
script
元素很久以前的
language
属性


更新:这段代码

<script type="text/javascript" for="window" event="onload">
// <!CDATA[
    return window_onload()
// ]]>
</script>

确保页面中有可用的java脚本函数。有时,当没有方法可访问时,您会遇到此类错误。

由于不同的JS引擎、错误,在不同的浏览器中总是会发生这种情况etc@Tomas:这是一个非常笼统的评论,你可以在几乎所有关于web开发的问题下面都加上它,不,在本例中,这不是问题的原因。您能否显示HTML发送到浏览器时的外观?我无法“阅读”ASP.net,担心该部分会干扰您的
#newsdiv
(ID不仅区分大小写,而且必须是唯一的)。顺便说一句,
setTimeout(“scrollFromBottom()”,50)
不是如何使用
setTimeout
,不要向它输入字符串,它与使用
eval
有相同的缺陷。在这种情况下,只需使用
设置超时(scrollFromBottom,50)
。感谢您的及时响应。我应该包装DOM的哪些函数,所有函数?@simflex::如果您只包装对
init()
的调用并删除
window\u onload
的东西,那就可以了。不过,也请看@Marcel Korpel的答案。你们真是太棒了。为什么我花了这么长时间才发现这个伟大的地方@Marcel Korpel,我以前试过你的建议,现在又试了一次,但我想我做得不对,因为它没有帮助。你们能帮我重新安排一下吗,因为我还在试着处理js。非常感谢大家。这些都是很棒的回答。@simflex,请评论我的回答,因为如果你打电话给我,而我还没有在谈话中,我将不会得到通知。不管怎样,你所说的“没有帮助”是什么意思?您当前的代码是什么样子的?你能调整一下你问题中的代码吗?请原谅我@Marcel和你们所有出色的助手。在被要求离开现场之前,我没有机会回应。我已经更新了js,从你的帖子中我可以确定。“objectrequired”错误消失了,但是文本没有像我测试的另一台PC那样滚动。再一次,非常抱歉反应太晚。这不是故意的,非常感谢你的帮助。@simflex:没问题,我不介意有人像我一样生活在interwebz之外。@Marcel,你知道为什么文本没有根据上面修改的代码滚动吗?好的,duh,我明白@Marcel关于javascript区分大小写的观点。对不起,有点慢。
<script type="text/javascript" for="window" event="onload">
// <!CDATA[
    return window_onload()
// ]]>
</script>
window.onload = window_onload;