动态加载div上的Javascript AJAX?

时间:2013-02-10 14:49:41

标签: javascript html ajax

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。


  1. 加载index.php
  2. 登录loginwindow
  3. 加载index.php
  4. 完成index.php的加载后,阅读所有元素,包括content
  5. 使用一些AJAX数据更新content
  6. 如果

    ,则有效

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

    这就是为什么:

    我也在登录窗口使用AJAX,它使用navigate()就像我的所有按钮和不做的那样。所以问题是index.php被加载,带有登录窗口,登录窗口用AJAX(javascript)更新整个页面,而AJAX又试图从返回数据中再次调用navigate() AJAX通话...... “内联”navigate()被调用!!! ,只是它不知道所有元素,因为它是通过AJAX加载的。

2 个答案:

答案 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;