使用javascript调用eBay API但无法获取我想要显示的信息

时间:2012-02-29 21:21:26

标签: javascript html api ebay

我正在尝试构建一个非常简单的工具,供我的工作使用。我在eBay工作,目前可用的工具很麻烦。我们被要求比较文本和图像,以检查卖家是否没有窃取彼此的内容。我正在使用eBay Trading API和创建开发者帐户时给出的示例HTML / CSS / Javascript代码。最终我希望实现的是一个简单的页面,它显示两个项目的照片和描述彼此相邻。但是,现在我只是想编辑给出的示例代码以显示拍卖的开始日期。

我的问题是:我正在尝试添加一个变量,其值由API的响应决定。其中一些是在示例中提供的,但是,当我将自己的var starttime = items.listingInfo.startTime添加到函数中并将变量添加到HTML表时,没有任何数据显示,包括在添加之前显示的数据。不幸的是,我对javascript的基本了解不多,所以我不确定我是否正确地表达了这个问题,更不用说让我的添加语法正确了。我究竟做错了什么?

下面是示例文本,其中添加了一个声明的变量(starttime),并添加了一个HTML表格

<html>
<head>
<title>eBay Search Results</title>
<style type="text/css">body { font-family: arial,sans-serif;} </style>
</head> 
<body>
<h1>eBay Search Results</h1>
<div id="results"></div>

<script>
function _cb_findItemsByKeywords(root)
{
  var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
  var html = [];
  html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');

  for (var i = 0; i < items.length; ++i)  
  {
    var item     = items[i];
    var title    = item.title;
        var viewitem = item.viewItemURL;
    var starttime = items.listingInfo.startTime;

    if (null != title && null != viewitem)
    {
      html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' + 
        '<td><a href="' + viewitem + '" target="_blank">' + title + '</a>' + starttime + '</td></tr>');
    }
  }
  html.push('</tbody></table>');
  document.getElementById("results").innerHTML = html.join("");
}
</script>

<!--
Use the value of your appid for the appid parameter below.
-->
<script src=http://svcs.ebay.com/services/search/FindingService/v1?SECURITY-APPNAME=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&RESPONSE-DATA-FORMAT=JSON&callback=_cb_findItemsByKeywords&REST-PAYLOAD&keywords=iphone%203g&paginationInput.entriesPerPage=3>
</script>
</body>
</html>"

1 个答案:

答案 0 :(得分:1)

如果您认为listingInfo是单个项的属性,并且它是具有属性startTime的对象,那么正确的语法是:

var item     = items[i];
var title    = item.title;
var viewitem = item.viewItemURL;
var starttime = item.listingInfo.startTime;

您当前正在引用items这是项目数组,而不是单个项目。

更新

我通过您在评论中添加的URL来查看此内容。这个特殊问题的解决方案是:

var starttime = item.listingInfo[0].startTime;

我希望有所帮助。请查看常见问题解答; Imho这个问题不属于本网站的scope(这个问题非常狭窄,不太可能帮助其他人)。我建议Mozilla Developer Network作为了解JavaScript的更多信息的来源。