2010-05-28 12 views
0

그래서 내가 출력 일부 파일에 대한 데이터를 HTML 테이블 (등 파일 이름, 파일 크기, 같은 ...)는 왜 <img> 고도가 항상 제대로

내가이 자바 스크립트 함수를 가지고이 PHP 스크립트가 표시되지 않는 속성입니다 클래스 "미리보기"에 속한 태그를 가리키면 그림이 표시됩니다. 예를 들어 파일 이름이 somePic.jpg 인 경우 테이블에서 somePic.jpg를 가리키면 그림이 마우스 옆에 나타납니다.

이제는 이러한 파일이 모두 그림이 아니며 일부는 .mp3입니다. 따라서 마우스로 가리키면 자바 스크립트에서 그림을 표시 할 수 없습니다. 이 경우를 처리하기 위해 javascript 함수에 의해 생성 된 태그에 alt 속성을 추가했습니다. alt = '이 유형의 콘텐츠에서는 미리보기를 사용할 수 없습니다.'

여기 내 문제가 있습니다. 때로는 작동하지만 가끔은 그렇지 않습니다! 때때로 .mp3 링크를 가리키면 alt 속성이 표시되고 그림을 가리키면 그림이 표시되고 .mp3을 다시 가리키면 alt가 더 이상 표시되지 않지만 "깨진 이미지" 이미지 (작은 적색 십자가)가 대신 표시됩니다 ...

확실히 내가 파일 이름을 구문 분석하고 MP3 및 그 사건을 처리 할 때를 감지 할 수 있지만 alt 속성이이를 달성한다고 생각했습니다. 하지만 그것은 버그가 ...

어떤 생각? 이미이 문제에 직면 한 사람이 있습니까?

+2

몇 가지 코드를 표시 할 수 있습니까? 문제를 재현하는 HTML 출력? – Konerak

답변

4

일반적으로 alt은 오류 상태에 대한 백스톱이 아닌 이미지가 비활성화 된 경우를위한 것입니다. IMO에서는 대체 텍스트를 오류 조건으로 표시하는 것이 바람직한 반면 표준에서는 다음을 수행해야한다고 말하지 않습니다.

이미지, 양식 또는 애플릿을 표시 할 수없는 사용자 에이전트의 경우이 속성은 대체 텍스트 .

실제로 브라우저 동작은 다양합니다. WebKit (Safari, Chrome)은 손상된 이미지 아이콘 만 표시하며 대체 텍스트는 표시하지 않습니다. IE는 이미지 아이콘이있는 상자 안에 alt 텍스트를 렌더링하려고 시도합니다. 이미지 아이콘은 빈약하게 자주 표시됩니다.

따라서 오류가 발생하면 대체 텍스트를 표시해서는 안됩니다.

내가 파일 이름을 구문 분석하고

예, 당신이해야합니다 생각 mp3 파일을 때 감지 할 수 있는지 확인하십시오. 파일 이름/URL 확장이 실제 파일 유형과 아무 관련이 없으므로 일반적인 경우에도 가능하지 않습니다. 그러나 모든 URL을 직접 제어하는 ​​경우 모든 MP3가 ...mp3으로 보장 될 수 있습니다.

1

PHP가 파일 형식을 감지하고 자바 스크립트를 이미지에만 인라인 렌더링하도록하는 방법은 어떻습니까?

또한 FireBug를 확인하고 이미지 위로 마우스를 가져 가면 무슨 일이 일어나는지 확인해야합니다.

8

alt 속성과 title 속성을 혼동하는 것처럼 보입니다.

alt 속성은 img 고유의 속성으로 이미지를 렌더링 할 대체 콘텐츠를 지정할 수 있습니다. title은 요소 위에 마우스를 올려 놓을 때 툴팁을 제공하는 데 사용되는 일반 속성입니다.

일부 깨진 사용 도구 기침 IE 기침 이미지에 title으로 치료 alt; 많은 혼란의 뿌리.

+0

"alt 속성은 이미지를 저장할 수없는 경우 렌더링 할 대체 컨텐츠를 지정하는 img 고유의 속성입니다." 그래서 사진이 아닐 때마다 alt를 렌더링해야합니다.^_^ 내 경우이고 실제로는 가끔씩 작동하지만 항상 그렇지는 않습니다 ... 그냥 버그가있는 행동이라고 생각합니다 ... – Piero