1

주제: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

..가 발생해서 확인해봤는데요 (http://crizin.net 참고)

블로그에 검색을 할때는 아래와 같은 스크립트가 실행되는데

try{window.location.href='/search/' + document.getElementsByName('search')[0].value.replaceAll('%', '%25'); return false;}catch(e){}

AdClix에서 검색창과 같은 "search" 라는 name을 가진 input element를 뿌려주기 때문에 AdClix가 검색창보다 앞에 있는 경우 document.getElementsByName('search')[0] 하면 AdClix의 search 값이 리턴됩니다

꼭 AdClix 때문이 아니더라도 검색창을 찾아오는데 document.getElementsByName을 사용하는건 좀 이상하지 않나 싶군요.. 이런류의 다른 플러그인과 충돌할 여지도 앞으로 존재하니 말입니다

제가 생각하는 해결책은..

지금은 skin spec에서 검색창을 정의할때 name="search" 를 넣도록 돼있는데 이걸 id="TattertoolsSearch" 정도로 바꾸고 [##_search_onclick_submit_##] 치환자에게 inline java script를 뿌려주지 말고 search() 같은 함수를 호출하도록 해서, document.getElementById("TattertoolsSearch")가 있으면 그걸 사용하고 없으면 이전처럼 document.getElementsByName('search')을 뒤져서 처리하도록 하는게 좋을 것 같은데 좀 땜빵스러운 방법 같습니다;; 스킨 스펙을 자꾸 바꾸는 것도 그렇고..

다른 아이디어가 있으신 분들의 답글을 기다립니닷

2

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

예전에도 재기했던 문제인걸로 기억합니다.(너무 오래되서 기억도 가물가물..; )
name 속성을 사용하는 것은 둘째치고서라도 명백히 form 컨트롤 요소임에도 불구하고 form을 사용하지 않는게 더 큰 문제라고 생각합니다.

<s_search>를 <form action="/search/">로, </s_search>를 </form>로 치환 후 [##_search_onclick_submit_##]를 this.form.submit(); 정도로 바꾸는게 맞다고 생각합니다.
다만 이렇게 할 경우 '/search/?search=키워드' 식으로 넘어가게 되므로 RewriteRule을 추가해줘야 되겠습니다.

덧. js가 재미있는 녀석인건 분명하지만 너무 의존적이 되지는 말았으면 합니다. smile

Peris (2007-04-11 18:36:51)에 의해 마지막으로 수정

3

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

Peris 작성:

다만 이렇게 할 경우 '/search/?search=키워드' 식으로 넘어가게 되므로 RewriteRule을 추가해줘야 되겠습니다.

http://blog.tattertools.com/search/tattertools 처럼 Fancy URL ? 를 써왔던 경우도 있으니 이점은 유지가 되는것이 좋을듯 싶습니다.

lunamoth (2007-04-11 19:50:40)에 의해 마지막으로 수정

4

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

lunamoth 작성:
Peris 작성:

다만 이렇게 할 경우 '/search/?search=키워드' 식으로 넘어가게 되므로 RewriteRule을 추가해줘야 되겠습니다.

http://blog.tattertools.com/search/tattertools 처럼 Fancy URL ? 를 써왔던 경우도 있으니 이점은 유지가 되는것이 좋을듯 싶습니다.

저렇게 한다고해서 기존 방식이 사용 불가능한 것은 아니니 그것은 문제가 아닌것 같습니다. smile

5

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

Peris 작성:

예전에도 재기했던 문제인걸로 기억합니다.(너무 오래되서 기억도 가물가물..; )
name 속성을 사용하는 것은 둘째치고서라도 명백히 form 컨트롤 요소임에도 불구하고 form을 사용하지 않는게 더 큰 문제라고 생각합니다.

<s_search>를 <form action="/search/">로, </s_search>를 </form>로 치환 후 [##_search_onclick_submit_##]를 this.form.submit(); 정도로 바꾸는게 맞다고 생각합니다.
다만 이렇게 할 경우 '/search/?search=키워드' 식으로 넘어가게 되므로 RewriteRule을 추가해줘야 되겠습니다.

덧. js가 재미있는 녀석인건 분명하지만 너무 의존적이 되지는 말았으면 합니다. smile

오호 매우 좋은 방법 같습니다. 어차피 '/search/?search=키워드'로 호출하더라도 '/search/index.php'가 받게되니 RewriteRule 추가 없이도 될 것 같은데요..

6

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

그럼 그렇게 가는 쪽으로 하는 것도 괜찮을 듯 합니다. smile

"Everything looks different on the other side."

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

7

답글: AdClix를 붙였을때 블로그에서 검색이 되지 않는 문제

수정된 내용이 sandbox에 반영되었습니다. form 태그가 추가되면서 발생하는 부작용이 있는지 체크를 해보아요~

ps. AdClix 스크립트는 기존 태터툴즈와 충돌이 발생하지 않도록 수정이 됐더군요