2011-12-19 42 views
5

Tôi có đoạn này của HTML5, cho phép người dùng click và chơi một chút âm thanh:yếu tố âm thanh không hiển thị/chơi bên trong iframe trong Firefox

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

này hoạt động tốt trong FF 8 trên OS X Lion. Các nút điều khiển trình phát âm thanh xuất hiện, tôi có thể nhấp vào phát và phát phiên bản ogg.

Nhưng nếu tôi đặt tệp chứa bên trong khung nội tuyến của một tài liệu HTML5 khác (cả từ hệ thống tệp cục bộ; không có vấn đề liên quan đến nguồn gốc), thì nó không hoạt động. Phần còn lại của HTML hiển thị tốt, nhưng Firefox hoạt động như thể nó không hỗ trợ bất kỳ định dạng phương tiện nào.

Dưới đây là các chức năng tôi sử dụng để thêm trang để các iframe:

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; 
} 

Sau đây là cách FF ám nó.

enter image description here

Tại sao? Và làm thế nào để sửa nó? TIA.

+0

Thông tin mới: Đã lưu trữ các tệp trên Apache (nguyên nhân Chrome có vấn đề gốc với các tệp cục bộ). Được thử nghiệm với Chrome 16. Cùng một vấn đề chính xác! Âm thanh phát khi được hiển thị dưới dạng trang riêng nhưng không xuất hiện khi ở trong khung nội tuyến. Kỳ dị. –

+0

Tôi tự hỏi đó có phải là vấn đề liên quan đến bảo mật hay không. Bạn có nhận được bất kỳ báo cáo lỗi nào trong bảng điều khiển không? –

+0

Tôi đang thực hiện một số thao tác ghi nhật ký, hiển thị trong bảng điều khiển nhưng không có lỗi nào trong FF hoặc Chrome. –

Trả lời

0

Bí ẩn được giải quyết. Đó là một vấn đề về thư mục/URL tương đối. Tệp HTML cơ sở (với phần tử khung nội tuyến) nằm trong một thư mục khác từ tệp HTML được nối thêm (nội dung khung nội tuyến) và các tệp âm thanh. Vì vậy, nó không thể tìm thấy các tập tin âm thanh.

Giải pháp: Đặt tất cả các tệp vào một thư mục hoặc (tốt hơn) sử dụng URL tuyệt đối thay vì URL tương đối.

Các vấn đề liên quan