From 2fe6406becdd73e3c06b9720807d311e46842938 Mon Sep 17 00:00:00 2001 From: user Date: Sun, 15 May 2011 15:50:16 +0900 Subject: [PATCH 1/1] first git --- GNU LICENSE.pdf | Bin 0 -> 54643 bytes css/style.css | 146 +++++++++ images/arrow.png | Bin 0 -> 361 bytes images/background.png | Bin 0 -> 155 bytes images/buzz.png | Bin 0 -> 1420 bytes images/check.png | Bin 0 -> 276 bytes images/header.png | Bin 0 -> 215 bytes images/home.png | Bin 0 -> 361 bytes images/more.png | Bin 0 -> 274 bytes images/navleft.png | Bin 0 -> 826 bytes images/navlinkleft.png | Bin 0 -> 786 bytes images/navlinkright.png | Bin 0 -> 804 bytes images/navright.png | Bin 0 -> 845 bytes images/storetouched.png | Bin 0 -> 214 bytes images/textfield.png | Bin 0 -> 481 bytes index.html | 87 ++++++ javascript/.DS_Store | Bin 0 -> 6148 bytes javascript/function_bbs.js | 62 ++++ javascript/function_details.js | 67 ++++ javascript/function_form.js | 36 +++ javascript/function_search.js | 103 +++++++ javascript/functions.js | 1 + javascript/jkl-parsexml.js | 676 +++++++++++++++++++++++++++++++++++++++++ product.html | 57 ++++ product_bbs.html | 56 ++++ result.html | 56 ++++ 26 files changed, 1347 insertions(+) create mode 100644 GNU LICENSE.pdf create mode 100644 css/style.css create mode 100644 images/arrow.png create mode 100644 images/background.png create mode 100644 images/buzz.png create mode 100644 images/check.png create mode 100644 images/header.png create mode 100644 images/home.png create mode 100644 images/more.png create mode 100644 images/navleft.png create mode 100644 images/navlinkleft.png create mode 100644 images/navlinkright.png create mode 100644 images/navright.png create mode 100644 images/storetouched.png create mode 100644 images/textfield.png create mode 100644 index.html create mode 100644 javascript/.DS_Store create mode 100644 javascript/function_bbs.js create mode 100644 javascript/function_details.js create mode 100644 javascript/function_form.js create mode 100644 javascript/function_search.js create mode 100644 javascript/functions.js create mode 100644 javascript/jkl-parsexml.js create mode 100644 product.html create mode 100644 product_bbs.html create mode 100644 result.html diff --git a/GNU LICENSE.pdf b/GNU LICENSE.pdf new file mode 100644 index 0000000000000000000000000000000000000000..af9c5b4260e374b66aa3e29aa304fac716d03dbd GIT binary patch literal 54643 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 literal 0 HcmV?d00001 diff --git a/images/background.png b/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..8c4f5279eb7444be83c75b1a1dc0afcaccb1de45 GIT binary patch literal 155 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)O!2~4dW-8AFQq09po*^6@9Je3(KLBz$3p^r= z85sCVK$tOGW%D(lpiGHtL`iUdT1k0gQ7VIDN`6wRf?H-$YI%N9cCmtUunF6y%L{<& u#5`RbLpWw8+f+T{VrKf23UYVlRs+FswJ6ax{W;!FyRLEM>2oBOhO)4CwhN)51L0e7n zF~wR_7in4QWJwQGL3}{w6entASR{T6r|)37T@9+p-^J#>*~ zvYKj5SBZ6r7OSP!bS=DU=fH#_@M#FgQc~An50!cU1xO*)u*h>e_SBR7%QmD=Qfnpk zn0NjLvq3!8qIo&ZY-Ukw7#DO`a03Kz8!YU6M5czF({`fBZ~^OlYCWlo+0YT>o$>aN zs&8c)xl5C~y9$BL_3=25fR-aYThIx-q#mHRN>+o)#|~>p@Q$^c`CB1_aKn4UK|wl1 z0$0u{;bS;*!T$EYJG&>OeVTsc{3>s~AMG+jrG28-sohn`^W)_%UG8y$c-BKsemfU& z4in4|?Vi4$S)YTP^%>EsJjLjWyH#G(SexAz$&W_!RyF7vJt`2wm`_|b4fVVuk&QYaGkJih-6TO@bwQ_-9o|W4T;b(=z^q?RTEnnv7 zO`|KU{NLh+_oB06VY%JR=48G26Jltxb-(UFXD=@_I&|5VO)|t;MG0JT-My?d#I@j# zPu3ZTs!7LTM5!y@g|X(C?>WQI*YzAGE-f4{CGP%u#1L#BsMZb;!oA#l9!5P4%Ct>C zj`Ej=Jz&keVXqJN>$~~FXa<*A1FJ0!sbsR}-ipu6PP1H%Yy^M!a1nR1#jc%P*Y%Y) z?lp8ZWB#=;BK!LlmtsPPsr1K;5r=AU2A~^efxhr80a}Ms?xeLYZ^=pm)r0Rdp!W!6N%?SyP(<3*CUJ_fo zZBC(an3V;pX}9V5!IP&8J2coLeD%;>lVY_X{S@nVsQlN3woq1ISD<=UR;!uqr`fhP z7TdBy8uWIT6F>G;b{@%Q6f$_35Rp1Qu2t7fNzP~Pu58-KPmSfU(uKLF7q9;Gu~hJ8 zCbvH1{l+2VX7Jv?nR?fz=+3DLNrM7xwf>=y fE$P=5t-ylB{(}^H+O`c&w?V|%#F$&rhfDqgqXHVd literal 0 HcmV?d00001 diff --git a/images/check.png b/images/check.png new file mode 100644 index 0000000000000000000000000000000000000000..39dfc248e21fa3aa5417d0133826534dd549aa47 GIT binary patch literal 276 zcmeAS@N?(olHy`uVBq!ia0vp^{6L(-!VDx=pDup@q?n7HJVQ7*IBq}m2XW;Bd_r9R z|Nn2~---*ppLo6msFJfJ$S;^dP|2lZ)$TKQfBkrG3=%Bxh%9Dc;Q9cEalo5uBVL!MeCX zL%}YX;n0UUTnlGvaVzp%o5?58_S9s>turSbnrhn^PM={=VD{+p4{zvj_hZyHm~Usy qcqU<{{&X^mBNQRm>8Tq_#;-Ym{SEbo59o7&t;ucLK6Vthgu8( literal 0 HcmV?d00001 diff --git a/images/header.png b/images/header.png new file mode 100644 index 0000000000000000000000000000000000000000..9a02c6021ffb02b018868a32f891b20e09496aeb GIT binary patch literal 215 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfz!2~3=U0uz96mzkYX9x!e$L)vy4}e_G0*}aI z1_rJVAk65r#$*OiP^QE+q9iy!t)x7$D3!r6B|j-u!7Z~WwLHHlyI8?F*o1A< zL7py-AsjPfdp2@4I50TLfBQfG+KoFGE{L%>iY(%A*48z%6^fL0S45Si zME8CD_9mq4?#rszyX2St6A84dzq3i$@&4j~vL>d(m2c$t-YY(SuhxJEXgY(ZtDnm{ Hr-UW|ovTXV literal 0 HcmV?d00001 diff --git a/images/home.png b/images/home.png new file mode 100644 index 0000000000000000000000000000000000000000..0fc49fcb83e0db35e15edc3a045b05f63828e609 GIT binary patch literal 361 zcmeAS@N?(olHy`uVBq!ia0vp^A|TAc3?z4jzqJQa%*9TgAsieWw;%dH0CK$pd_r9R zgTeP7KR$o?_Wu3HXV0HQMBw5;22cu4LR2EFfwL>8d`JNrD^U{U7tA0C0!qd%p`mGM z<>eh69Wz($K6Cfo)HO0nKsB5N9+AZi3|t>Tn9*sC$qb;NOo?kmNpOBzNqJ&XDuZK6 zep0G}TV_#ed45rLv4V533EQU23xMh}JzX3_B*KrLJIU9ez~g%H5yQFQ)^Gp!UkO?q zSn&SthoVcY4B>e#I?@%>(qr!(TcjFTJ6pLg*I~-6j0I=Ihuv1<33yYDI$LS6wSI14-?iy0WWK7cTz(;AZ* zKtY)j*NBqf{Irtt#G+IN$CUh}R0X%pqSW&IqU>S?=U@}IO_vt{)!BKvIEHXUCr^kv zap1rO%>xGCmoYFOzst#E<#4CkyrJ>u8{U(<-5ZMR%D>+$WVobLelUiu?apq#gjs*N bCNMBeekJs7YkS9Uph*m#u6{1-oD!M<2c={V literal 0 HcmV?d00001 diff --git a/images/navleft.png b/images/navleft.png new file mode 100644 index 0000000000000000000000000000000000000000..a6c05dd7dbcfae38a71618e7e0185fc5fa0f96e7 GIT binary patch literal 826 zcmV-A1I7G_P)w(E zZ*psMAVX6$2C~zj0008DNkli?R@XLt{V?nG)kvK3kZM|aJ2TZc zJW=Tjh@!{|I70vs98Qny>x_)9EH6rUrmblhFD9Ra!Xp*e{2YN}?$cN0noZ1i=esx4 z{`z)rO&vSK97%ANdUEgFSYORpbfdWqi4a)<5*#J2Q<-{3TloAbJoFgJfp(!l00880 z>dyJO>4w&bv&4-I&%poy5l`B#tu7lVHTdeRi!cCS$PY<1tt@?8Y#Vrp1W@o}{%=dt zLD~7a=|D@LD7kHRF?N#qV`YgsJRYx~;l(|VGP#u8Pkdim3PmP37XS)wI7b}G!3CGM z{+6pu=0wF?P3=nMRY8N7^0ZN8+JQ7ZD?S(>l`zeb36~KFf|y8W#sJphmL_~_Jx3@NxNj9@g0HGL*#~&R}szU=^ zOxpv(VhSH-5)mg-G;_GWQ%lB*nS@9L$F^-0C1+14s4MYe?>v^Ko3(+OK$SbIrwcK} z(N$WKOA=8$sfIglxdqP1_R`^ann;K(dfQ{&OTt|p5MQlW2Th`XuG_;Byq#-HEOSW45~u2P@3qB|Vs zASBZn>72FNHg4^tni_&V9W73$#26Z;wU<=QtPKGF088@(WQPa1p8x;=07*qoM6N<$ Ef<&)qc>n+a literal 0 HcmV?d00001 diff --git a/images/navlinkleft.png b/images/navlinkleft.png new file mode 100644 index 0000000000000000000000000000000000000000..5e59302af0e1ff4f88845af084a28267ae7438f1 GIT binary patch literal 786 zcmV+t1MU2YP)w(E zZ*psMAVX6$2C~zj0007wNkl7q+D>Eof_j0s%}FA|b}a z#E<1y@C&$i=HR_ zcPEv}x;Zot}y?~vO7K0my%z;>X*&oqDEg@pDI6>4yKYzT-x}RSM-YuP~MkzKc81U6LyEnht+n8 z%ayXIVaMnA7v`4X4N z@4qyn*k+<3y9p7c(h^H9M^{&P)J;Ged8;s^teODMJu?S}Bf# z-&JsbWlrnpKYkw9+nVZfhJ*gqY*v8On&;%jt2d*_0Wroqx^Yr#>0J}RA4*|J^csWU QH2?qr07*qoM6N<$g0I_YP5=M^ literal 0 HcmV?d00001 diff --git a/images/navlinkright.png b/images/navlinkright.png new file mode 100644 index 0000000000000000000000000000000000000000..df5131f87507e0bc728e2e3e70eab0af0ade824f GIT binary patch literal 804 zcmV+<1Ka$GP)w(E zZ*psMAVX6$2C~zj0007?Nkld}q5^8vLsB^; zw^Yvgj`;++H9~KKja2PBI=VE(nWBcP~EU}zeeTgu(Dwn6FA`&98wBk_IlRP>srqesmU%l}M zbdOg70KYyKG9wMETFB=YQcIE&>`F=@GZITZ)4~%7OPmYNg#d(!EGsIONHKR{nug19 zTe_LpWf0H|Mg?{G&EyOMnmM8wpFeGRvD=|imlN6R=K^ucx>^buk-AmgPw!67q&m+j zc@&q?JMPe&ihs*&Yt=LPUid$fad6zbUqUjX^M%~rlQq3!Utcw0jIkb8uR`|te11KX z-Z7?<*Cb`!=|=)UFdWJ6t_Srqtd6xSm~lZF@0(1(WNbPAHS71Vc7;&JT{_UjVdC?L z9%S}*L(wDv5XL!W{oS@>L^n>dC9UyOc*B@8!3Ivw(fD*Kmq`Z|K3vbXY0ZphGig$5 zv^-UN2ok_?C53nhAcRoQuXH;Yb!E|5NG#%^x(Oj%yE6Ycw)g#lAb`PJw(6JhnF%HY zLNG*6$F_|7qpGSFepmoN01!a`rqr>0GBSlUt>8?wYO%z_>~Z;O@gQzR zvwry~7HziNo7MhgvsR9pVT7flUyc7r#p@Bg=L|Wvr3chtaI|=4bx1g@jk-?v8KREu zB`h*Io-0*ut2i+?)2jXzLUahsZGlsZO-HiF<*xf;hoiN{S?m1RY1TNS0KlkgTNjvC z7v^SjrE0H(ke1`>y7v0T%9s88@AE%)v*jOArzXOxPubYq>V*LS5dtnMb;T<`T}}EF i4w(E zZ*psMAVX6$2C~zj0008WNklOQRUXL=pti;1-P!qA^N|{%whwj9_y|vU}wGcw?gv_LsPqnp=D|x41B$>^&QfwhJk9nXQ$dUsrxC z-MVu(*4DmXrDJexeBtGb(aX2P@sqwl(9`Jm1%fTdV$Gr0%yjBlIPCK`@m_MYgxiw+ zV@4<T_L&rC#PiH3@Il8A`922Pi^y?c0iGWB1d8p+aFlOsouo2Wj%U#v{a8V^qUM~R-1 z#koh(c*5Tl0060xY+V;pd83^}(~~J;AO?ve15?X?R-T^14|9m2Cz*zSxs8-`ITYi3XY0-(03woIS0d%HU} zw(~nDN{HHNnNa7~FJ2u^Z{_|zy{aQ7=eJg`jP_^pCE|ZGQ@hV%CVjRmE|t@^v2qbf zkK4tx?+lfT*=Wcci?-&ArK;U0Lq?Nr?L9-E(pn^j&UEC`Kde%oPy+yJ+stiBYxBnVU^-JoX4(r?w(MZgxOr*d z-KQ_V((7ia?DsV!+rp<$^{u9}2Ye&N44avP$L$;)?DKkDN;zy>XY=Or+BWTKp;EsA X*;>SgeABAf00000NkvXXu0mjf=?0Q@ literal 0 HcmV?d00001 diff --git a/images/storetouched.png b/images/storetouched.png new file mode 100644 index 0000000000000000000000000000000000000000..2d1da6816e7cf0a7ca088e2dadffd062450809c7 GIT binary patch literal 214 zcmeAS@N?(olHy`uVBq!ia0vp^j6fX4!3HENV{G;UDVAa<&kznEsNqQI0P;BtJR*x3 z7`Q%wFr(8NlNmrknG)BClHmNblJdl&R0hYC{G?O`x6Go{^8BLgVg=`56Shs47XZ}- zc)B=-NKCEmv*bIVz{BG1@w0Z{Y%^!a=H9~1o32%V+%um!fn8b0&ugwdk9fMEz|QKx zg|}tqtzP7t7g+XM+FeMT+rrs*S4`%|j+lB?X#>XT0ggWwcQA(l&1Ud)^>bP0l+XkK DLR3I* literal 0 HcmV?d00001 diff --git a/images/textfield.png b/images/textfield.png new file mode 100644 index 0000000000000000000000000000000000000000..8299a81412ee80c8227e3fa742522637450b4c37 GIT binary patch literal 481 zcmV<70UrK|P)hkz5SHE9~!acEZo867;*i+8uOWYcTU&lK? z?w>SxDr_#r7b*aRABGRM?-a{R@~WudSLR1Yglaz+jt%ywCcdP49G-*B_iUWoI}-2! X8avY&v=w@~00000NkvXXu0mjfe{aO2 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..942e9da --- /dev/null +++ b/index.html @@ -0,0 +1,87 @@ + + + + + + + + + + + + +kakapple + + + + + +
+

kakApple

+
+ +
+
    +
  • ようこそ kakApple☀ へ +

    iWebkit4 [x] API remix - お買い物サイト

    +
  • +
+
+
    +
  • +
  • +
+
    +
  • +
  • +
+
    +
  • 人気順 +
  • +
  • 価格の低い順 +
  • +
  • 価格の高い順 +
  • +
  • 発売日 +
  • +
+
    +
  • +
  • +
+
+
+ + + + + + \ No newline at end of file diff --git a/javascript/.DS_Store b/javascript/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0最終投稿日時:" + productbbs.WrittenDate; + bbs_comment.setAttribute('class','comment'); + bbs_link.appendChild(bbs_comment); +var bbs_arrow = document.createElement('span'); + bbs_arrow.setAttribute('class','arrow_out'); + bbs_link.appendChild(bbs_arrow); + product_bbs.appendChild(bbs_link); +document.getElementById('productItem').appendChild(cof_threadTitle); +document.getElementById('productItem').appendChild(product_bbs); +} +}else{ +var buzz_result = document.createTextNode(dataofProductBbs.Error.Message); + document.getElementById('buzzresult').appendChild(buzz_result); +} \ No newline at end of file diff --git a/javascript/function_details.js b/javascript/function_details.js new file mode 100644 index 0000000..ebb2fae --- /dev/null +++ b/javascript/function_details.js @@ -0,0 +1,67 @@ +/* +----------------------------------------------- +Licensed under the GPL licenses. +Author: Coronet Internet Service, Kyoji KATO. +Date: 2011-05-15 +URL : http://blog.coronet-internet.com +----------------------------------------------- */ +// get url to array +var get = new Object(); +var query = location.search.substr(1).split("&"); +for(var array = 0; array < query.length; array++) { + var wArray = query[array].split("="); + get[wArray[0]] = wArray[1]; + } +// build connecting to product url +var api_setkey = "ApiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; +var api_pathofProduct = "http://api.kakaku.com/WebAPI/ItemInfo/Ver1.0/ItemInfo.ashx?"; +var api_productId = "&ProductID="; +var get_productId = get['productId']; +var api_product_details ="&ResultSet=medium"; +var api_product = api_pathofProduct+api_setkey+api_product_details+api_productId+get_productId; +// parse XML to data +var httpofProduct = new JKL.ParseXML( api_product ); +var dataofProduct = httpofProduct.parse(); +// set bbs of product url +var bbs_path = "product_bbs.html?productId="; +var bbs = bbs_path+get_productId;//generate right navi link in product page +var kakaku_navLink = document.createElement('a'); + kakaku_navLink.setAttribute('href', dataofProduct.ProductInfo.Item.ItemPageUrl); + kakaku_navLink.setAttribute('rel', 'external'); + kakaku_navLink.innerText ="価格.com"; + document.getElementById('rightnav').appendChild(kakaku_navLink); +//generate cof page item in product page +var pageItem = document.createTextNode(dataofProduct.ProductInfo.Item.MakerName+" :: "+dataofProduct.ProductInfo.Item.ProductName); + document.getElementById('cofpageitem').appendChild(pageItem); +// represantion info of products +var productItem = document.createElement('li'); + productItem.setAttribute('class','item'); +var bbs_link = document.createElement('a'); + bbs_link.href = bbs; + bbs_link.setAttribute('class','noeffect'); +var content_img = document.createElement('span'); + content_img.setAttribute('class','image'); + content_img.style.cssText = "background-image: url("+dataofProduct.ProductInfo.Item.ImageUrl+");" + +"margin:15px 3px;"; + bbs_link.appendChild(content_img); +var content_comment = document.createElement('span'); + content_comment.innerText = dataofProduct.ProductInfo.Item.CategoryName+" > "+dataofProduct.ProductInfo.Item.PvRanking+"位" ; + content_comment.setAttribute('class','comment'); + bbs_link.appendChild(content_comment); +var content_name = document.createElement('span'); + content_name.innerText = dataofProduct.ProductInfo.Item.ProductName; + content_name.setAttribute('class','name'); + bbs_link.appendChild(content_name); +var content_storePrice = document.createElement('span'); + content_storePrice.innerHTML = "¥"+dataofProduct.ProductInfo.Item.LowestPrice+"〜
"; + content_storePrice.setAttribute('class','price'); + bbs_link.appendChild(content_storePrice); +var content_starComment = document.createElement('span'); + content_starComment.innerHTML = "満足度:"+dataofProduct.ProductInfo.Item.ReviewRating+"
クチコミ:"+dataofProduct.ProductInfo.Item.NumOfBbs; + content_starComment.setAttribute('class','starcomment'); + bbs_link.appendChild(content_starComment); +var content_arrow = document.createElement('span'); + content_arrow.setAttribute('class','arrow'); + bbs_link.appendChild(content_arrow); +productItem.appendChild(bbs_link); +document.getElementById('productIteminfo').appendChild(productItem); \ No newline at end of file diff --git a/javascript/function_form.js b/javascript/function_form.js new file mode 100644 index 0000000..a8f391f --- /dev/null +++ b/javascript/function_form.js @@ -0,0 +1,36 @@ +/* +----------------------------------------------- +Licensed under the GPL licenses. +Author: Coronet Internet Service, Kyoji KATO. +Date: 2011-05-15 +URL : http://blog.coronet-internet.com +----------------------------------------------- */ +var inp_keyword = document.createElement('input'); + inp_keyword.setAttribute('type', 'text'); + inp_keyword.setAttribute('value', 'Search word here.'); + inp_keyword.setAttribute('name', 'Keyword'); + inp_keyword.style.color='#7f7f7f'; + inp_keyword.setAttribute('onfocus','if (this.value == "Search word here."){this.value = "";this.style.color="#7f7f7f";}'); + inp_keyword.setAttribute('onblur', 'if (this.value == ""){this.value = "Search word here.";this.style.color="#7f7f7f";}else{this.style.color="#ef027d";}'); + document.getElementById('Keyword').appendChild(inp_keyword); + +function send() { + if (document.search.Keyword.value=="Search word here."){ + alert("You didn't input search word"); + return false; + }else{ + var keyword=encodeURI(document.search.Keyword.value); + } + var category=document.search.Category.value; + if (document.search.Sort[0].checked){ + sort=document.search.Sort[0].value; + }else if(document.search.Sort[1].checked){ + sort=document.search.Sort[1].value; + }else if(document.search.Sort[2].checked){ + sort=document.search.Sort[2].value; + }else if(document.search.Sort[3].checked){ + sort=document.search.Sort[3].value; + } +var query="keyword="+keyword+"&sort="+sort+"&category="+category+"&pagenum=1"; + location.href="result.html?"+query; +} diff --git a/javascript/function_search.js b/javascript/function_search.js new file mode 100644 index 0000000..e61cb9f --- /dev/null +++ b/javascript/function_search.js @@ -0,0 +1,103 @@ +/* +----------------------------------------------- +Licensed under the GPL licenses. +Author: Coronet Internet Service, Kyoji KATO. +Date: 2011-05-15 +URL : http://blog.coronet-internet.com +----------------------------------------------- */ +// get url to array +var get = new Object(); +var query = location.search.substr(1).split("&"); +for(var array = 0; array < query.length; array++) { + var wArray = query[array].split("="); + get[wArray[0]] = wArray[1]; + } + +// build connecting to url +var api_path = "http://api.kakaku.com/WebAPI/ItemSearch/Ver1.0/ItemSearch.aspx?"; +var api_setkey = "ApiKey=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; +var api_ofsort = "&SortOrder="; +var api_sort = get['sort']; +var api_setkeyword = "&Keyword="; +var api_keyword = get['keyword']; +var api_ofcategory = "&CategoryGroup="; +var api_category =get['category']; +var api_resultset = "&ResultSet=medium"; +var api_hitnum = "&HitNum=7"; +var api_page = "&PageNum="; +var currentpage = get['pagenum']; +var api = api_path + api_setkey + api_hitnum + api_ofcategory + api_category + api_ofsort + api_sort + api_resultset + api_page + currentpage + api_setkeyword + api_keyword; +// parse XML to data +var http = new JKL.ParseXML( api ); +var data = http.parse(); + +if(data.Error == null){ +// set next search page url +var page_num = parseInt(currentpage)+ 1; +var products_query="keyword="+api_keyword+"&sort="+api_sort+"&category="+api_category+"&pagenum="+page_num; +var product_next_path = "result.html?"+products_query; +// set paging +var totalItems = data.ProductInfo.NumOfResult; +var max_page = Math.ceil(totalItems/7); + if(max_page >= page_num){ + //generate next link of right navi + var right_navLink = document.createElement('a'); + right_navLink.setAttribute('href', product_next_path); + right_navLink.innerText ="次ページ"; + document.getElementById('rightnav').appendChild(right_navLink); + } +//generate conf_keyword +var decode_keyword = decodeURI(api_keyword); +var search_keyword = document.createTextNode("「"+decode_keyword+"」キーワード検索"); + document.getElementById('searchkeyword').appendChild(search_keyword); +//generate result num +var totalItems = document.createTextNode(totalItems); + document.getElementById('resultsnum').appendChild(totalItems); +for (var itemsNum = 0; itemsNum <= 7; itemsNum++){ +// build product page url +var productItem = data.ProductInfo.Item[itemsNum]; +var product_path = "product.html?productId=" + productItem.ProductID; +var productItemUrl = productItem.ImageUrl; +// representation info of products +var products_list = document.createElement('li'); + products_list.setAttribute('class','store'); +var product_link = document.createElement('a'); + product_link.href = product_path; + product_link.setAttribute('class','noeffect'); +var product_img = document.createElement('span'); + product_img.setAttribute('class','image'); + product_img.style.cssText = "background-image: url("+productItemUrl+");" + +"margin:15px 0 0 2px;"; + product_link.appendChild(product_img); +var product_comment = document.createElement('span'); + product_comment.innerText = productItem.CategoryName+" > "+productItem.MakerName ; + product_comment.setAttribute('class','comment'); + product_link.appendChild(product_comment); +var product_name = document.createElement('span'); + product_name.innerText = productItem.ProductName; + product_name.setAttribute('class','name'); + product_link.appendChild(product_name); +var product_storePrice = document.createElement('span'); + product_storePrice.innerHTML = "¥"+productItem.LowestPrice+"〜
"; + product_storePrice.setAttribute('class','price'); + product_link.appendChild(product_storePrice); +var product_starComment = document.createElement('span'); + product_starComment.innerHTML = "カテゴリランキング:"+productItem.PvRanking+"位
満足度:"+productItem.TotalScoreAve; + product_starComment.setAttribute('class','starcomment'); + product_link.appendChild(product_starComment); +var product_arrow = document.createElement('span'); + product_arrow.setAttribute('class','arrow'); + product_link.appendChild(product_arrow); +products_list.appendChild(product_link); +document.getElementById('pageitem').appendChild(products_list); +} +}else{ +var search_keyword = document.createTextNode(data.Error.Message); + document.getElementById('searchkeyword').appendChild(search_keyword); +} + + + + + + diff --git a/javascript/functions.js b/javascript/functions.js new file mode 100644 index 0000000..851fa61 --- /dev/null +++ b/javascript/functions.js @@ -0,0 +1 @@ +/* ----------------------------------------------- Licensed under the GPL licenses. iWebKit : Christopher Plieger & Johan van Wilsum URL : http://iwebkit.net ----------------------------------------------- */ var iWebkit; if(!iWebkit){iWebkit=window.onload=function(){iWebkit.checkboxHeight="25"; iWebkit.radioHeight="25"; iWebkit.autolistNumVisible=10; function b(){var d=document.getElementsByTagName("a"); for(var e=0; e=l){j[k].className=j[k].className+" hidden"}else{m+=1}}this.visibleitems=m; e.className=e.className.replace(/hidden/g,""); if(m>=(j.length-1)){e.className=e.className+" hidden"}}; h.showItems(iWebkit.autolistNumVisible)}}iWebkit.init=function(){b(); c(); a(); var h=document.getElementsByTagName("input"),j=[],g,i,k; for(var f=0; f +// http://www.kawa.net/works/js/jkl/parsexml.html +// ================================================================ +// v0.01 2005/05/18 first release +// v0.02 2005/05/20 Opera 8.0beta may be abailable but somtimes crashed +// v0.03 2005/05/20 overrideMimeType( "text/xml" ); +// v0.04 2005/05/21 class variables: REQUEST_TYPE, RESPONSE_TYPE +// v0.05 2005/05/22 use Msxml2.DOMDocument.5.0 for GET method on IE6 +// v0.06 2005/05/22 CDATA_SECTION_NODE +// v0.07 2005/05/23 use Microsoft.XMLDOM for GET method on IE6 +// v0.10 2005/10/11 new function: JKL.ParseXML.HTTP.responseText() +// v0.11 2005/10/13 new sub class: JKL.ParseXML.Text, JSON and DOM. +// v0.12 2005/10/14 new sub class: JKL.ParseXML.CSV and CSVmap. +// v0.13 2005/10/28 bug fixed: TEXT_NODE regexp for white spaces +// v0.14 2005/11/06 bug fixed: TEXT_NODE regexp at Safari +// v0.15 2005/11/08 bug fixed: JKL.ParseXML.CSV.async() method +// v0.16 2005/11/15 new sub class: LoadVars, and UTF-8 text on Safari +// v0.18 2005/11/16 improve: UTF-8 text file on Safari +// v0.19 2006/02/03 use XMLHTTPRequest instead of ActiveX on IE7,iCab +// v0.20 2006/03/22 (skipped) +// v0.21 2006/11/30 use ActiveX again on IE7 +// v0.22 2007/01/04 JKL.ParseXML.JSON.parseResponse() updated +// ================================================================ + +if ( typeof(JKL) == 'undefined' ) JKL = function() {}; + +// ================================================================ +// class: JKL.ParseXML + +JKL.ParseXML = function ( url, query, method ) { + // debug.print( "new JKL.ParseXML( '"+url+"', '"+query+"', '"+method+"' );" ); + this.http = new JKL.ParseXML.HTTP( url, query, method, false ); + return this; +}; + +// ================================================================ +// class variables + +JKL.ParseXML.VERSION = "0.22"; +JKL.ParseXML.MIME_TYPE_XML = "text/xml"; +JKL.ParseXML.MAP_NODETYPE = [ + "", + "ELEMENT_NODE", // 1 + "ATTRIBUTE_NODE", // 2 + "TEXT_NODE", // 3 + "CDATA_SECTION_NODE", // 4 + "ENTITY_REFERENCE_NODE", // 5 + "ENTITY_NODE", // 6 + "PROCESSING_INSTRUCTION_NODE", // 7 + "COMMENT_NODE", // 8 + "DOCUMENT_NODE", // 9 + "DOCUMENT_TYPE_NODE", // 10 + "DOCUMENT_FRAGMENT_NODE", // 11 + "NOTATION_NODE" // 12 +]; + +// ================================================================ +// define callback function (ajax) + +JKL.ParseXML.prototype.async = function ( func, args ) { + this.callback_func = func; // callback function + this.callback_arg = args; // first argument +}; + +JKL.ParseXML.prototype.onerror = function ( func, args ) { + this.onerror_func = func; // callback function +}; + +// ================================================================ +// method: parse() +// return: parsed object +// Download a file from remote server and parse it. + +JKL.ParseXML.prototype.parse = function () { + if ( ! this.http ) return; + + // set onerror call back + if ( this.onerror_func ) { + this.http.onerror( this.onerror_func ); + } + + if ( this.callback_func ) { // async mode + var copy = this; + var proc = function() { + if ( ! copy.http ) return; + var data = copy.parseResponse(); + copy.callback_func( data, copy.callback_arg ); // call back + }; + this.http.async( proc ); + } + + this.http.load(); + + if ( ! this.callback_func ) { // sync mode + var data = this.parseResponse(); + return data; + } +}; + +// ================================================================ +// every child/children into array +JKL.ParseXML.prototype.setOutputArrayAll = function () { + this.setOutputArray( true ); +} +// a child into scalar, children into array +JKL.ParseXML.prototype.setOutputArrayAuto = function () { + this.setOutputArray( null ); +} +// every child/children into scalar (first sibiling only) +JKL.ParseXML.prototype.setOutputArrayNever = function () { + this.setOutputArray( false ); +} +// specified child/children into array, other child/children into scalar +JKL.ParseXML.prototype.setOutputArrayElements = function ( list ) { + this.setOutputArray( list ); +} +// specify how to treate child/children into scalar/array +JKL.ParseXML.prototype.setOutputArray = function ( mode ) { + if ( typeof(mode) == "string" ) { + mode = [ mode ]; // string into array + } + if ( mode && typeof(mode) == "object" ) { + if ( mode.length < 0 ) { + mode = false; // false when array == [] + } else { + var hash = {}; + for( var i=0; i" ); + + // COMMENT_NODE + + if ( elem.nodeType == 7 ) { + return; + } + + // TEXT_NODE CDATA_SECTION_NODE + + if ( elem.nodeType == 3 || elem.nodeType == 4 ) { + // var bool = elem.nodeValue.match( /[^\u0000-\u0020]/ ); + var bool = elem.nodeValue.match( /[^\x00-\x20]/ ); // for Safari + if ( bool == null ) return; // ignore white spaces + // debug.print( "TEXT_NODE: "+elem.nodeValue.length+ " "+bool ); + return elem.nodeValue; + } + + var retval; + var cnt = {}; + + // parse attributes + + if ( elem.attributes && elem.attributes.length ) { + retval = {}; + for ( var i=0; i -1 ) { + if ( text.charAt(nextquote+1) != '"' ) { + break; // end of column + } + nextquote = text.indexOf( '"', nextquote+2 ); + } + if ( nextquote < 0 ) { + // unclosed quote + } else if ( text.charAt(nextquote+1) == "," ) { // end of column + var quoted = text.substr( pos+1, nextquote-pos-1 ); + quoted = quoted.replace(/""/g,'"'); + line[line.length] = quoted; + pos = nextquote+2; + continue; + } else if ( text.charAt(nextquote+1) == "\n" || // end of line + len==nextquote+1 ) { // end of file + var quoted = text.substr( pos+1, nextquote-pos-1 ); + quoted = quoted.replace(/""/g,'"'); + line[line.length] = quoted; + pos = nextquote+2; + break; + } else { + // invalid column + } + } + var nextcomma = text.indexOf( ",", pos ); + var nextnline = text.indexOf( "\n", pos ); + if ( nextnline < 0 ) nextnline = len; + if ( nextcomma > -1 && nextcomma < nextnline ) { + line[line.length] = text.substr( pos, nextcomma-pos ); + pos = nextcomma+1; + } else { // end of line + line[line.length] = text.substr( pos, nextnline-pos ); + pos = nextnline+1; + break; + } + } + if ( line.length >= 0 ) { + table[table.length] = line; // push line + } + } + if ( table.length < 0 ) return; // null data + return table; +}; + +// ================================================================ +// class: JKL.ParseXML.CSVmap + +JKL.ParseXML.CSVmap = function ( url, query, method ) { + // debug.print( "new JKL.ParseXML.CSVmap( '"+url+"', '"+query+"', '"+method+"' );" ); + this.http = new JKL.ParseXML.HTTP( url, query, method, true ); + return this; +}; + +JKL.ParseXML.CSVmap.prototype.parse = JKL.ParseXML.prototype.parse; +JKL.ParseXML.CSVmap.prototype.async = JKL.ParseXML.prototype.async; +JKL.ParseXML.CSVmap.prototype.onerror = JKL.ParseXML.prototype.onerror; +JKL.ParseXML.CSVmap.prototype.parseCSV = JKL.ParseXML.CSV.prototype.parseCSV; + +JKL.ParseXML.CSVmap.prototype.parseResponse = function () { + var text = this.http.responseText(); + var source = this.parseCSV( text ); + if ( ! source ) return; + if ( source.length < 0 ) return; + + var title = source.shift(); // first line as title + var data = []; + for( var i=0; i 0 && + this.req.status != 200 && // OK + this.req.status != 206 && // Partial Content + this.req.status != 304 ) { // Not Modified + // debug.print( "status: "+this.req.status ); + if ( this.onerror_func ) this.onerror_func( this.req.status ); + return false; // failed + } + + return true; // succeed +} + +// ================================================================ +// method: documentElement() +// return: XML DOM in response body + +JKL.ParseXML.HTTP.prototype.documentElement = function() { + // debug.print( "documentElement: "+this.req ); + if ( ! this.req ) return; + if ( this.req.responseXML ) { + return this.req.responseXML.documentElement; // XMLHTTPRequest + } else { + return this.req.documentElement; // IXMLDOMDocument + } +} + +// ================================================================ +// method: responseText() +// return: text string in response body + +JKL.ParseXML.HTTP.prototype.responseText = function() { + // debug.print( "responseText: "+this.req ); + if ( ! this.req ) return; + + // Safari and Konqueror cannot understand the encoding of text files. + if ( navigator.appVersion.match( "KHTML" ) ) { + var esc = escape( this.req.responseText ); +// debug.print( "escape: "+esc ); + if ( ! esc.match("%u") && esc.match("%") ) { + return decodeURIComponent(esc); + } + } + + return this.req.responseText; +} + +// ================================================================ +// http://msdn.microsoft.com/library/en-us/xmlsdk/html/d051f7c5-e882-42e8-a5b6-d1ce67af275c.asp +// ================================================================ diff --git a/product.html b/product.html new file mode 100644 index 0000000..ba7b641 --- /dev/null +++ b/product.html @@ -0,0 +1,57 @@ + + + + + + + + + + + + +kakapple + + + + + + + +
+

アイテム詳細

+
    +
  • +
+
+ + + + + + + \ No newline at end of file diff --git a/product_bbs.html b/product_bbs.html new file mode 100644 index 0000000..e9ebb59 --- /dev/null +++ b/product_bbs.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + +kakapple + + + + + + + +
+

+
    +
+
+ + + + + + + \ No newline at end of file diff --git a/result.html b/result.html new file mode 100644 index 0000000..815ced4 --- /dev/null +++ b/result.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + +kakapple + + + + + +
+

kakApple

+ +
+
+
+ +
+

+
    +
  • 検索結果:件
  • +
+
+ + + + + + + \ No newline at end of file -- 2.11.0