2009-09-03 1 views
3

나는 내 동료 중 한 사람과이 토론을하고있었습니다. 그는 플래시가로드 될 객체 주위에 a-href를 넣는 코드를 만들었습니다. 이걸 보았을 때 나는 거의 울었고 그 대신에 clickTag를 사용하라고했습니다.객체 (예 : 플래시) 주변의 a-href는 나쁜 아이디어입니까, 아니면 실제로 그러한 객체를 클릭하는 것이 처리되어야하는지에 대한 표준이 있습니까?

그는 a-href와 잘 작동한다고 말했습니다. 나는 그것을 조사했고, 코드는 ie6-8과 firefox (모두 플래시 플래이어 9 또는 10을 설치했다)에서 잘 작동했다.

내가 KNEW 이래로 a-href를 사용하는 것이 정말 나쁜 생각 인 이유에 대해 조금 연구 해 보았습니다.

거기에서 나는 기준 (http://www.w3.org/TR/html401/struct/objects.html)을 조사하고 주변에 봤다.

하지만 왜 작동하지 않아야하는지에 대한 설명을 찾지 못했습니다 (때로는 작동하지 않는다는 것을 알고 있습니다).

주변 a-href를 사용하고 clickTag를 전달하는 솔루션으로 끝났습니다 (fyi : CMS에서 나온 이후 어떤 종류의 swf가 표시 될지 알 수 없음).

a-href/flash가 때때로 작동하고 때로는 작동하지 않는데 "그런 식으로"표준적인 방법으로 무엇을 할 수 있습니까? 포함 된 다른 객체 (svg/movie/audio/..)는 무엇입니까? (플래시 또는 미디어 플레이어와 같은 포함 된 객체에 대한 클릭과 같은) 처리 방법을 정의하는 표준이 있습니까 (예 : 자바 스크립트를 사용하여 클릭 이벤트)?

답변

4

표준은 있지만 브라우저/플랫폼 조합에 따라 예측할 수없는 결과를 초래할 수 있습니다. simple search을 수행하고 결과를 살펴보면 swf를 하이퍼 링크하는 데 문제가있는 사람들이 많이 있다는 것을 알 수 있습니다.

하이퍼 링크와 clickTag를 모두 추가하는 것은 의미가 없습니다. 방문자가 올바른 버전의 Flash를 사용하고 있다면 Flash 무비를 얻고 clickTag를 사용할 것이기 때문에 기능을 복제합니다. Flash가 설치되어 있지 않으면 사용자가 하이퍼 링크에 계속 액세스 할 수 있도록하기 위해 하이퍼 링크를 대체해야합니다. SWFObject과 같은 라이브러리는 이것을 매우 쉽게합니다.

+0

이 경우에는 콘텐츠 관리에서 어떤 종류의 SWF가 업로드/표시되는지 미리 알지 못합니까? 이것이 제가 전체 이야기를 말한 이유입니다. afaik는 href가 작동한다는 보장은 없습니다. 또한 플래시 이외의 다른 객체는 어떻습니까? – Niko

+1

개체 하이퍼 링크는 개체 자체가 클릭 이벤트를 가로 채고 기본 클릭 처리기를 실행할 수 있기 때문에 항상 예기치 않게 작동합니다. 그것은 작동하지 않을 수 있습니다 또는 개체에 따라 달라집니다 및 브라우저/플랫폼 조합에 따라 달라집니다! –

+0

그게 내가 생각하는 것. 객체가 이벤트를 전달하거나 - 따라서 a를 실행합니다. 나는 ie에서 진술을 찾고있다. w3c 또는 적어도 mozilla, adobe 또는 ms이 동작을 설명합니다. 당신의 대답과 제 자신의 연구에서 나는 그것이 작동하는 방법을 설명/정의하는 표준이나 명확한 정의가 없다는 것을 모았습니다 ... 누군가가 명확한 설명을 가리킬 수 있기를 바랬습니다. – Niko

2

나는 그것을 반대하는 것이 좋습니다. 내 컴퓨터는 64 비트 Linux를 실행 중이며 Flash는 Firefox에서 약간 재미 있습니다. (한 가지는 Z- 인덱스가 항상 다른 모든 것보다 큽니다.) 테스트하지는 않았지만 제대로 작동하지 않을 것으로 판단됩니다. 최종선은 모든 플랫폼의 모든 브라우저에서 테스트하고 싶은 일종의 것이므로 가능한 경우 사용하지 않는 것이 좋습니다.

+0

정확히 ... 사람들이 일을 정상적으로 수행하는 방식에서 벗어나는 것은 브라우저 간 교차 플랫폼 문제를 묻는 것입니다. 특히 임베디드 객체에 관해서. – Zoidberg

+0

그게 전부는 아닙니다. 경험에 의하면 나쁜 생각입니다. 질문은 더 있습니다. : 임베디드 객체에 대한 클릭과 같은 것들이 어떻게 처리되는지를 정의하는 표준이 있습니까? – Niko

+0

@ 니코 : 음, 질문의 제목은 : "a-href는 물체 주위 (즉 플래시)가 나쁜 생각입니까?" –

0

을 수행하는 표준 방법은 JS 표현을 전달하거나 한 번 클릭 초점 전에 <embed><object>가를 통해 전송되는 인라인에 포착 된 click 마우스 이벤트를 수신하기 위해 [onclick] 속성을 사용하는 것입니다 플러그인.

나는 경우 제대로 <object><embed> 주변 플러그인 콘텐츠를 제대로, 다음 <a>해야 랩 주위 <object><embed> 랩뿐만 아니라 생각하고 있어요. 나는 또한 자연스럽게 <object><embed>이 마우스 클릭 이벤트를 포착 할 때 그것이 적절하게 거품이 난다고 믿고 싶다.하지만 이런 종류의 동작이 플러그 - 인에 의해 변경되어 <a>이 올바르게 계산되지 않았거나 다른 이벤트 모델이 <a>에 이벤트를 발생시키지 않는 경우 100 % 확실하지 않습니다.

관련 문제