2016-09-03 6 views
0

こんにちは私は初心者プログラマーです.Javascriptを使ってハイブリッドモバイルアプリケーションにFinding APIを使って特定のキーワードを使ってEbayから商品を見つけようとしています。私はthis really clear guideを追跡しましたが、結果のdivに何も表示されません。私もウェブサイト上で正確なコードを実行しようとしましたが、まだ結果はありません。私はまた、フィールドに正しい生産appIDを取得して入力しました。ここで Ebay APIの後にヘルプが必要キーワードを使って商品を探す

はコードです:

<script>      
         var url = "http://svcs.ebay.com/services/search/FindingService/v1"; 
         url += "?OPERATION-NAME=findItemsByKeywords"; 
         url += "&SERVICE-VERSION=1.0.0"; 
         url += "&SECURITY-APPNAME=sample-sample-PRD-89a6113e8-f7a52044"; 
         url += "&GLOBAL-ID=EBAY-US"; 
         url += "&RESPONSE-DATA-FORMAT=JSON"; 
         url += "&callback=_cb_findItemsByKeywords"; 
         url += "&REST-PAYLOAD"; 
         url += "&keywords=harry%20potter"; 
         url += "&paginationInput.entriesPerPage=3"; 
         url += urlfilter; 
         alert(url); 
         // Submit the request 
         s=document.createElement('script'); // create script element 
         s.src= url; 

// Error received on the line below, "uncaught typeerror: cannot call method 'appendChild' of null" 
         document.body.appendChild(s); 

         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 pic  = item.galleryURL; 
           var viewitem = item.viewItemURL; 
           if (null != title && null != viewitem) { 
            html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' + 
            '<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td></tr>'); 
           } 
           } 
           html.push('</tbody></table>'); 
           document.getElementById("results").innerHTML = html.join(""); 
         } // End _cb_findItemsByKeywords() function 

        // Create a JavaScript array of the item filters you want to use in your request 
        var filterarray = [ 
          {"name":"MaxPrice", 
          "value":"25", 
          "paramName":"Currency", 
          "paramValue":"USD"}, 
          {"name":"FreeShippingOnly", 
          "value":"true", 
          "paramName":"", 
          "paramValue":""}, 
          {"name":"ListingType", 
          "value":["AuctionWithBIN", "FixedPrice"], 
          "paramName":"", 
          "paramValue":""}, 
          ]; 

        // Define global variable for the URL filter 
        var urlfilter = ""; 

        // Generates an indexed URL snippet from the array of item filters 
        function buildURLArray() { 
         alert("buildURLArray working"); 
         // Iterate through each filter in the array 
         for(var i=0; i<filterarray.length; i++) { 
         //Index each item filter in filterarray 
         var itemfilter = filterarray[i]; 
         // Iterate through each parameter in each item filter 
         for(var index in itemfilter) { 
          // Check to see if the paramter has a value (some don't) 
          if (itemfilter[index] !== "") { 
          if (itemfilter[index] instanceof Array) { 
           for(var r=0; r<itemfilter[index].length; r++) { 
           var value = itemfilter[index][r]; 
           urlfilter += "&itemFilter\(" + i + "\)." + index + "\(" + r + "\)=" + value ; 
           } 
          } 
          else { 
           urlfilter += "&itemFilter\(" + i + "\)." + index + "=" + itemfilter[index]; 
          } 
          } 
         } 
         } 
        } // End buildURLArray() function 

        // Execute the function to build the URL filter 
        buildURLArray(filterarray); 

        </script> 

HTML:2つの警告、警告(URL)がurlfilterは「undefined'and警告さを除くすべてが返され

<h1>eBay Search Results</h1> 

        <div id="results"></div> 

( "buildURLArrayが働いて" );現れなかった。 Eclipseはdocument.body.appendChild(s)行のエラーを返しました; sがnullであることを示唆しています。コードのほとんどはチュートリアルのものですが、なぜ同じ結果が得られないのかわかりません。

答えて

1

URL構築コードでは、インタープリタの連続性のためにurlFilterは定義されていません。割当ては吊り上げられません。つまり、現在の将来の価値を使用することはできません。 var URL = ...(1行目)からdocument.body.appendChild(s)までのコードをカットしてください。あなたのスクリプトタグ内の最後に(buildURLArray(filterarray);の後ろに)貼り付けてください。今度はurlFilterがいくつかの値を取得し、その後URL構築に使用されます。

+0

お世話になりました。出来た !! :-) –

関連する問題