0

我正在开发一个 PhoneGap iOS Facebook 应用程序,并且正在显示用户的新闻源。到目前为止,这是我的代码:

<script>
function showPosts() {
    FB.api('/me/home', function(response) {
        console.log(response);

        if (!response.error) {
            var markup = '';

            var messages = response.data;

            for (var i = 0; i < messages.length && i < 5; i++) {
                var message = messages[i];

                markup += '<p><img src="' + message.picture + '">' + message.message + '<img src="https://graph.facebook.com/' + message.from['id'] + '/picture">' + message.from['name'] + '</p><br>';
            }

           document.getElementById('newsfeedposts').innerHTML = markup;
        }
    });
}
</script>

现在,如果帖子中没有消息,则会显示“未定义”。此外,当没有消息图片时,会有一个空的图像图标,因为<img>标签仍在加载中。是否可以创建一个 if 语句来说明如果 message.picture 为空而不是不显示<img src="message.picture">

发布消息也是如此。如果message.message为空,我是否可以创建一个 if 语句,说如果没有消息则不显示任何内容,从而消除“未定义”?

如果 if 语句有效,我应该把它放在哪里?我尝试在“标记”中放置一个 if 语句,但我无法让它工作。

4

2 回答 2

1

很简单:

if (typeof message.picture != 'undefined') {
  // message.picture is not empty, so do the stuff inside of here.
}
于 2012-06-06T02:51:51.457 回答
0

由于message将永远存在,并且picture在 inside message,即使picture是 undefined 也不会抛出错误。因此,您可以这样做:

if (message.picture) {
    //Do things here.
}
于 2012-06-06T04:19:12.293 回答