0

如何将 onload 事件添加到 div 元素?

我读过这个,尽管我有一个问题..我知道没有onLoaddiv,但我应该能够像这样执行一个片段:

...
<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。


  1. 加载 index.php
  2. 登录到登录窗口
  3. 加载 index.php
  4. 完成 index.php 加载后,读取所有元素,包括content
  5. 更新content一些 AJAX 数据。

如果它有效

我登录,加载页面一次,结果不成功,然后再次刷新页面。

原因如下:

我也在登录窗口上使用 AJAX,它使用navigate()我所有的按钮,而不是什么。所以问题是index.php通过登录窗口加载,该登录窗口使用 AJAX (javascript) 更新整个页面,然后尝试navigate()从 AJAX 调用的返回数据中再次调用...... “内联”navigate()得到打电话!!!,只是它不知道所有元素,因为它是通过 AJAX 加载的。

4

2 回答 2

0

根据我的测试,您.getElementById甚至可以在页面加载之前获取 div 元素。
不要忘记navigate函数必须在调用之前定义。因此,如果您的脚本位于文档末尾(这是正确的),则必须在执行这些脚本后调用该函数。

但是无论如何,您.onload错误地分配了该功能。像这样做:

window.onload = function(event) {
                /*any script here*/
}

或者像这样:

function load(event) {
                /*any script here*/
}
window.onload =load;
于 2013-02-10T14:58:48.850 回答
0

尝试这个 :

window.onload = function(){
    navigate('main.php', 'content');
}
于 2013-02-10T14:56:35.777 回答