티스토리 뷰
오타변환, 추천검색어를 따로 구현 후 합쳐봤다.
영타입력으로 잘못 입력해도 추천검색어가 나온다.
폼
<script language="javascript" type="text/javascript">
//<![CDATA
var url = 'recmd.asp';
var q = encodeURIComponent("zjfldj");
$(function(){
$.getJSON(url, { query:q }, function(json){
if(!json) { $('#result').text('응답없음'); return false; }
var str = "";
var cnt = json.result.item.length;
for(var i=0; i<cnt; i++) {
str += "<li>"+ json.result.item[i] +"</li>";
}
$('#result').html(str);
});
});
//]]>
</script>
<div id="item-count"></div>
<ul id="result"></ul>
처리
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<% '// 네이버 오타변환 & 추천검색어 API
Session.CodePage = "65001" '"949"
Response.CharSet = "UTF-8" '"euc-kr"
Response.addHeader "pragma", "no-cache"
Response.addHeader "cache-control", "private"
Response.AddHeader "Expires","0"
Response.CacheControl = "no-cache"
Response.ContentType = "application/json"
Dim query, key, target, getUrl
query = Request.Querystring("query")
If query = "" Then Response.write(""): Response.End
key = "{API KEY}"
'// 오타변환
target = "errata"
getUrl = "http://openapi.naver.com/search"
getUrl = getUrl &"?key="& key &"&target="& target &"&query="& query
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "get", getUrl, False
objHTTP.Send
xmlData = objHTTP.responseText
if xmlData="" then Response.write("Naver url is not available"): Response.End
Set objHTTP = Nothing
'Response.write(Replace(Replace(xmlData, "<", "<"), ">", ">")): Response.End '// debug
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
xmlDoc.loadXML(xmlData)
Set colNodes = xmlDoc.selectSingleNode("/result/item/errata")
Set xmlDoc = Nothing
errata = colNodes.text
Set colNodes = Nothing
If errata <> "" Then query = encodeURI(errata)
'// 추천검색어
target = "recmd"
getUrl = "http://openapi.naver.com/search"
getUrl = getUrl &"?key="& key &"&target="& target &"&query="& query
Set objHTTP = CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "get", getUrl, False
objHTTP.Send
xmlData = objHTTP.responseText
if xmlData="" then Response.write("Naver url is not available"): Response.End
Set objHTTP = Nothing
Set xmlDoc = Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.Async = "False"
xmlDoc.loadXML(xmlData)
Set colNodes = xmlDoc.selectNodes("/result/item")
if colNodes.length = 0 then Response.write("recmd item does not exists."): Response.End
Set xmlDoc = Nothing
json = ""
For Each objNode in colNodes
json = json &""""& objNode.text &""","
Next
If Len(json) = 0 Then Response.write("XML parsing is not available"): Response.End
json = Left(json, Len(json)-1)
Set colNodes = Nothing
Response.Write("{""result"":{""item"":["& json &"]}}")
%>
<script language="javascript" runat="server">
function encodeURI(str)
{
return encodeURIComponent(str);
}
</script>'웹프로그래밍 > js' 카테고리의 다른 글
| jQuery Debugging 에 관한 팁 (0) | 2011.02.10 |
|---|---|
| 트위터 공식 위젯 IE 오류 때려잡기 (10) | 2010.11.08 |
| window.open (0) | 2010.08.09 |
| JavaScript 재입문 (링크) (0) | 2010.07.22 |
| jQuery 페이징 플러그인 zPaging 모냥빠지는 문제 수정 (0) | 2010.07.09 |
댓글
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- mssql
- sencha touch
- Prototype
- nginx
- API
- PHP
- IE
- 한글
- javascript
- Android
- Docker
- 워드프레스
- Debug
- 안드로이드
- JSON
- iphone
- Wordpress
- macos
- nodejs
- IOS
- classic asp
- JQuery
- Mac
- ASP
- Linux
- git
- iis
- CSS
- laravel
- centos
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
글 보관함