2011-12-19 5 views
5

에서 iframe을 내부 재생 나는 사용자가 클릭하고 오디오의 비트를 재생할 수 있습니다 HTML5의 조각을 가지고하지 않습니다오디오 요소는/표시 파이어 폭스

<audio controls> 
    <source src="cell.ogg"> 
    <source src="cell.mp3"> 
    <source src="cell.m4a"> 
</audio> 

이 OS에 FF 8 잘 작동 X 라이온. 오디오 플레이어 컨트롤이 나타나고, 클릭 할 수 있으며, 오그 버전을 재생합니다.

하지만 포함 된 파일을 다른 HTML5 문서의 iframe 내부에 넣으면 (로컬 파일 시스템과 교차 출처가없는 문제 모두), 작동하지 않습니다. 나머지 HTML은 정상적으로 표시되지만 Firefox는 미디어 형식을 지원하지 않는 것처럼 작동합니다. FF 그것을 렌더링하는 방법을

function postContentToIframe(content) 
{ 
    var iframe = $("#displayContents")[0].contentWindow.document; 
    iframe.open(); iframe.close(); // must open and close document object to start using it! 
    $("body", iframe).append(content).hide().fadeIn("slow"); 
    return; 
} 

은 다음과 같습니다

는 여기에 내가 iframe이에 페이지를 추가하는 데 사용하는 기능입니다.

enter image description here

이유는 무엇입니까? 어떻게 해결할 수 있습니까? TIA.

+0

새 정보 : Apache에서 파일을 호스팅합니다 (Chrome에서 로컬 파일과 관련된 출처 문제가 발생 함). Chrome 16에서 테스트되었습니다. 똑같은 문제! 오디오는 iframe에있는 경우에는 페이지가 아닌 페이지로 렌더링 될 때 재생됩니다. 기묘한. –

+0

보안 관련 문제인지 궁금합니다. 콘솔에 오류보고가 있습니까? –

+0

콘솔에서 표시되는 일부 로깅을 수행 중이지만 FF 또는 Chrome에서는 오류가 표시되지 않습니다. –

답변

0

수수께끼가 풀렸다. 그것은 디렉토리/상대 URL 문제였습니다. 기본 HTML 파일 (iframe 요소 사용)은 추가 된 HTML 파일 (iframe 내용) 및 오디오 파일과 다른 디렉토리에 있습니다. 따라서 오디오 파일을 찾을 수 없습니다.

해결책 : 모든 파일을 하나의 디렉토리에 넣거나 상대 URL 대신 절대 URL을 사용하는 것이 좋습니다.