1

주제: r715 검색하기 버그 getElementById와 body id 충돌발생

블로그에서 특정 단어 '홍길동'을 검색한후 /search/ 페이지로 넘어간후
그 결과가 ' /search/홍길동'이라고 가정하면 그 페이지에서 다시 특정 단어로 검색을 하게되면
검색 스크립이 안먹힙니다.
이유 이렇습니다.  <body id="[##_body_id_##]">가 지정된 이후로
/search 페이지로이동하게 되면 <body id="search">로 id명이 지정되어 검색 스크립트가 먹히지 안는겁니다.
검색페이지 id를 변경하던지 스크립트를 변경해야 할것같습니다.
body id를 적용하지 않으면 이런 문제는 발생되지 않습니다.

<body id="search">
...생략...
<input type="text" class="input1" name="search" value="홍길동"  onkeypress="if (event.keyCode == 13) { try{window.location.href='/search/' + document.getElementsByName('search')[0].value.replaceAll('%', '%25'); return false;}catch(e){} }"/>
<input value="search" type="button" onclick="try{window.location.href='/search/' + document.getElementsByName('search')[0].value.replaceAll('%', '%25'); return false;}catch(e){}" class="submit"/>
...생략...
</body>

위와 같은 상황이 발생되어 검색버그가 일어나는겁니다. 변경을 해야할듯 합니다.
입력폼에서 엔터를... 검색버튼을 클릭을 해도 안됩니다. 위 문제때문에...

jparker (2006-07-24 23:01:16)에 의해 마지막으로 수정

당신의 삶속에 매화꽃 향기처럼 늘 아름다운 향기로 가득하길...
# J.Parker

2

답글: r715 검색하기 버그 getElementById와 body id 충돌발생

질문의 내용은 파악했으나. id가 같아서 검색이 안된다는 건데..
이걸 이해하려구 6번을 읽었는데.
저 진행과정은 아직도 이해가 안되는....ㅜㅜ

텍스트큐브를 이용하시다 불편하신 점 있으시면 아래로 연락주세요.
Needlworks/TNF - LonnieNa
nateon : y12x2 (a.t) nate.com / mail : lonniena (a.t) needlworks.org
http://twitter.com/@textcube

3

답글: r715 검색하기 버그 getElementById와 body id 충돌발생

웹접근성과 관련하여 search쪽은 form 태그로 변경하는게 맞다고 생각합니다.

4

답글: r715 검색하기 버그 getElementById와 body id 충돌발생

LonnieNa 작성:

질문의 내용은 파악했으나. id가 같아서 검색이 안된다는 건데..
이걸 이해하려구 6번을 읽었는데.
저 진행과정은 아직도 이해가 안되는....ㅜㅜ

1.1a body id 지정된 LonnieNa님 블로그와 다른분의 블로그에서도 같은 증상이 나오는 현상입니다.
위에서 보시면 body id 치환자를 삽입하게 되면 기타 다른 페이지에서는 상관없습니다.
허나, 검색결과물이 나오는 /search 페이지에서는 body id가 'search'로 지정됩니다.
그런데 검색 입력필드의 name명이 'search'입니다. 이제 필드에 검색어를 넣고
엔터 또는 검색버튼을 누르게 되면 document.getElementsByName('search')[0].value.replaceAll('%', '%25');이것을 이용하여
검색어 입력필드의 값을 가져오게 되는데 위에 body id가 'search'로 되어있기 때문에 getElementsByName('search')이넘이 어떤 'search'를
가져와야 하는지 혼동하기 때문에 검색 액션이 안되는 것입니다. 그러므로 검색페이지에서의 body id값은 다른것으로 교체하던지
검색폼에서의 스크립트를 수정하던지 해야 한다는 겁니다.
Peris님 말씀대로 차라리 댓글폼처럼 <form>..</form>태그로 해야 문제가 없을듯합니다.

당신의 삶속에 매화꽃 향기처럼 늘 아름다운 향기로 가득하길...
# J.Parker

5

답글: r715 검색하기 버그 getElementById와 body id 충돌발생

한 번도 안 들여다 본 소스네요. 허허허... 고쳐보도록 하죠.

6

답글: r715 검색하기 버그 getElementById와 body id 충돌발생

문제 파악했습니다 smile 바꿔 놓겠습니다.^^

"Everything looks different on the other side."

-Ian Malcomm, from Michael Crichton's 'The Jurassic Park'