Safari의 검색필드

Safari 버젼 1.3부터 지원되는 재미난 기능중에 Search Field라는게 있다. osx의 검색필드의 기능과 모양을 웹에서 구현할수 있게 해주는데 적용방법은 <input type="text" />를 이용하는게 아니라 <input type="search" />를 사용하면 된다.

물론 이 코드는 표준에 맞지 않는 코드로 validation을 통과할수는 없지만 실제 사용시 기타 브라우저에서는 일반 텍스트필드로 문제없이 렌더링되는걸 볼수있다.

사용가능한 attribute

  • autosave : 검색 히스토리를 저장할때 쓸 각 검색필드의 고유한 이름
  • results : 검색 히스토리를 몇개까지 저장할건지를 지정
  • placeholder : 사용자가 입력한 단어가 없을때 기본적으로 검색필드에 보여질 내용

적용된 모습

이런식으로 적용하면 그림과 같은 검색필드가 생성된다.

<input type="search" autosave="com.getografik.search" results="5" placeholder="search gt.grf" />

safari search field

왼쪽의 화살표가 있는 돋보기를 누르면 이 검색필드를 이용한 검색 히스토리가 나타나게 되며, 오른쪽의 X버튼은 검색필드에 사용자가 입력한 텍스트가 있을경우 나타나는 입력리셋버튼이다.

응용하기 혹은 꽁수

인터페이스적인 문제로 이 검색필드엔 submit버튼이 없는게 맞지만 일반적인 검색필드에선 그렇지가 않다. 또한 기타 브라우저에서 아무리 제대로 표현된다고 해도 비표준 테그에 알러지가 생길수도 있기 때문에 safari에서만 저 코드로 출력하게 해줄 필요가 있다. 그렇게 해주면 validation 엔진이 사파리로 인식되지 않는한 W3 validation에도 문제없이 통과하게 된다. -ㅅ-ㅋ

< ?php if(eregi('Safari',$_SERVER['HTTP_USER_AGENT'])) { ?>
<input type="search" autosave="com.getografik.search" results="5" placeholder="search gt.grf" />
< ?php } else { ?>
<input type="text" /><input type="submit" value="Find" />
< ?php } ?>

autosave에 관련한 재미있는 활용법
http://www.andrewescobar.com/archive/2005/06/02/search-field-history/

gt.grf에선 다음 개편때 일괄 적용하기 위해서 실험만 해보고 일단 템플릿에선 비활성화 시켜놓은 상태입니다.

10 Comments to “Safari의 검색필드”

  • 피엡

    No.1 / 2006.01.13, 1:37 am

    예전에 한 번 적용시켰다가 표준에 맞지 않길래 쓰지 않았었는데.. (이런 것까지 꼭 그럴 필요는 없지만)
    이 방법을 사용하면 될 것 같군요. 감사합니다 :)

  • jinoopan

    No.2 / 2006.01.13, 6:30 am

    ^^ 해봐야지

  • 신현석

    No.3 / 2006.01.13, 7:38 pm

    오…좋군요.

  • DG

    No.4 / 2006.01.14, 8:16 am

    트랙백이 안되나 보네요???

  • jay

    No.5 / 2006.01.14, 4:02 pm

    DG // 이상하군요. 트랙백 잘 받아오고 있었는데 말이죠.
    euc-kr인코딩은 깨지긴 하더라도 들어오긴 해야할텐데 뭐가 잘못됐는지 모르겠군요

  • PaperBoots.net :: Weblog

    No.6 / 2006.01.15, 4:03 am

    검색 필드 꽃단장

    Safari 1.3 이상에서는 검색필드가 맥오에스 풍으로 멋지게 나오도록 손봤다. 다른 브라우저에서는 여전히 기존의 촌스러운 검색필드를 보게 되지만.
    ‘초록색 버튼’, 이건 결코 의도한…

  • jinoopan

    No.7 / 2006.01.15, 4:04 am

    트랙백 잘 되는데요.

  • ceprix

    No.8 / 2006.01.15, 5:03 am

    제 블로그에선 Safari용 검색 필드를 쓴 지 꽤 되었습니다.
    저 같은 경우는 validation을 위해 JavaScript를 사용하고 있고, 예전에 이를 적용하는 방법에 대해 글을 올린 적이 있습니다.

    또한, user agent를 읽을 때, Safari보다는 AppleWebKit을 사용하는 게 더 낫습니다.
    왜냐하면 Safari 뿐만 아니라, 같은 WebKit 엔진을 사용하는 브라우저 (Shiira, OmniWeb 등) 및 RSS 구독기 (NetNewsWire, Vienna, 등)에서도 적용이 되기 때문이죠. *^^*

  • jay

    No.9 / 2006.01.15, 9:27 pm

    ceprix // 어익후! omniweb하고 shiira생각을 못했군요 :)

    ps. shiira는 잘 됩니다만 OSX 10.3.9/OmniWeb 512에서 확인한바로는 omniweb은 search field를 인식하지 못하는군요.

  • DG

    No.10 / 2006.01.23, 3:13 pm

    왜 제쪽에선 트랙백이 안될까요 ㅠㅠ 다른곳엔 잘가는데….

Archives...