我的onload函数序列是错误的

时间:2017-01-26 09:43:09

标签: javascript html couchdb

我要做的是从数据库中获取数据,当页面加载时,它们将显示在屏幕上。当用户登录时,它有一个保存在变量TODO中的数据库URL,我使用db来获取该用户的所有数据。

现在。我有一个按钮db.allDocs 但是当我尝试onload时,它确实有效,但没有正确的数据库。这是因为用户因某种原因未知。

我的代码:

<button onclick="showInfoItems()">

用户信息在showinfo.js中已知,但由于某种原因用户未定义,直到我按下onclick按钮。

我认为,当我第一次加载js文件(就像我一样)然后执行onload时,它会工作,但没有。用户名未定义。

有人知道我做错了什么或我如何解决这个问题?

编辑:

showInfoItems.js:

<body>
<ul id="info-lijst"></ul>
<script src="js/showinfo.js"></script>
<script>onload = showInfoItems();</script>

dbrp变量是什么: 本地主机:5984 / USERDB-未定义 当我做onclick它是: localhost:5984 / userdb-1234567890(用户名已知)

1 个答案:

答案 0 :(得分:1)

您定义的onload错误。它需要一个可调用的函数。你所做的就是立即调用你的功能。

window.onload = function() {
    showInfoItems()
});

修改

由于这似乎更像是一个PouchDB问题,因此扩展了我的答案。

问题是,您需要等待异步函数调用。文档准备就绪后,不会执行此功能。因此,要么在此功能中添加回调以在完成时触发另一个功能,要么添加调度CustomEvent

document.dispatchEvent(new CustomEvent('databaseReady'));

然后你可以监听这个事件并将多个函数绑定到它。

document.addEventListener('databaseReady', function() {
    showInfoItems()
});

http://codepen.io/anon/pen/vgeyzV?editors=1010