How to add onload event to a div element?
我读过这篇文章,尽管如此我有一个问题..
我知道div没有onLoad
,但我应该能够像这样执行一个代码段:
...
<div id="content">
<div class="text">
</div>
</div>
<script type="text/javascript">
navigate('main.php', 'content');
</script>
....
这不起作用,如果我启动一个新的浏览器会话并导航到index.php,它会显示一个登录窗口。登录后,它将我重定向到index.php,但设置了一些会话变量和cookie。现在index.php包含上面的代码,在此之前content
不存在。
现在我的问题:似乎大多数浏览器拒绝接受content
存在,
在导航功能中我得到了:
function navigate(str, what) {
if(what == null) {
what = document.documentElement;
} else {
what = document.getElementById(what);
}
将成为null
的内容,因为它在执行时不是有效的元素。
我试过了:
window.onLoad = naviate('main.php', 'content');
哪个什么都没做,同样的问题......
还尝试将<script>
块放在最后但没有运气。
我不能使用jQuery或其他任何东西,所以请保持标准的Javascript,HTML和CSS。 正在使用的浏览器:IE8,Chrome,FireFox。
content
content
。我登录,加载页面一次但结果不成功,然后再次刷新页面。
我也在登录窗口使用AJAX,它使用navigate()
就像我的所有按钮和不做的那样。所以问题是index.php
被加载,带有登录窗口,登录窗口用AJAX(javascript)更新整个页面,而AJAX又试图从返回数据中再次调用navigate()
AJAX通话......
“内联”navigate()
被调用!!! ,只是它不知道所有元素,因为它是通过AJAX加载的。
答案 0 :(得分:0)
试试这个:
window.onload = function(){
navigate('main.php', 'content');
}
答案 1 :(得分:0)
根据我的测试,即使在页面加载之前,你也可以通过.getElementById
得到div元素
不要忘记在调用navigate
函数之前必须先定义它。因此,如果您的脚本位于文档的末尾(这是正确的),则必须在执行theese脚本后调用该函数。
但无论如何,你错误地分配了.onload
功能。这样做:
window.onload = function(event) {
/*any script here*/
}
或者像这样:
function load(event) {
/*any script here*/
}
window.onload =load;