gpt4 book ai didi

javascript - 页面加载后移动到 div。 "onmouseover"有效,但 "window.onload"无效

转载 作者:行者123 更新时间:2023-11-28 14:01:45 26 4
gpt4 key购买 nike

我有一个正在动态生成的页面(和 div),我需要该页面做的是在页面加载后立即滚动到特定的 div。这段代码的奇怪之处在于......

当您将鼠标放在下面的“按钮”代码上(或 onclick)时,它可以完美运行。它完美地执行了rolldownTo函数。但是,当我尝试使用 window.onload 指定相同的操作时,什么也没有发生。我已经包含了“button”代码和下面的window.onload

<html>
<head>
<title>Help</title>

<script LANGUAGE="JavaScript1.2" type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js"
djConfig="usePlainJson : true, parseOnLoad: true">
</script>

<script type="text/javascript">
dojo.require("dojo.parser");
dojo.require("dijit.form.FilteringSelect");
dojo.require("dijit.form.TextBox");
dojo.require("dijit.layout.ContentPane");
dojo.require("dijit.layout.BorderContainer");
dojo.require("dijit.layout.TabContainer");
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dojo.window");


function rolldownTo(my_anchor){
dojo.window.scrollIntoView(my_anchor);
}

window.onload=rolldownTo('car_help');
</script>

<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs /dojo/1.5/dijit/themes/claro/claro.css"/>
</head>

<body class="claro">

<div dojoType="dijit.layout.BorderContainer" style="width: 100%; height: 100%;">
<div dojoType="dijit.layout.TabContainer" region="center">
<div dojoType="dijit.layout.ContentPane" title="CAR HELP" selected=true>
<button type=button id=button1 onmouseover="rolldownTo('car_help');">
scroll to car_help
</button>
........
LOTS OF DIVS LIVE IN THIS DIV, INCLUDING MY TARGET "car_help"
........
</div>
<div dojoType="dijit.layout.ContentPane" title="BIKE HELP" selected=false>
........
........
</div>
</div>
</div>
<script language="JavaScript1.2" type="text/javascript">
.... LOTS OF CODE THAT GENERATES CONTENT FOR THE DIVS ABOVE
</script>

</body>

</html>

有人知道为什么像 onmouseoveronclick 这样的 Javascript 事件可以完美工作,但 window.onload 却不能吗?

最佳答案

你的问题是这一行:

window.onload=rolldownTo('car_help');

您没有将函数 rolldownTo 指定为 onload 事件的回调,而是执行该函数并指定返回值,在本例中为未定义

您需要用匿名函数包装调用才能使其正常工作:

window.onload = function(){ rolldownTo('car_help'); };

现在,onload 事件将调用匿名函数,然后调用 rolldownTo

问题就这么多,正如 NiL 中途指出的那样(onload 在 DOMLoaded 之后触发),您可以使用 dojo.addOnLoad 而不是window.onload 在这里,但由于上述原因,您仍然必须使用匿名函数。

关于javascript - 页面加载后移动到 div。 "onmouseover"有效,但 "window.onload"无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4620148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com