Tôi có video youtube được nhúng mà tôi muốn áp dụng API YouTube. Tôi thêm các tham số url sử dụng jQuery như sau (demo):Bật API YouTube trên trình phát hiện tại
$(document).ready(function(){
var obj = $('object');
obj.find('embed').attr('src', function(i,s){return s+'&enablejsapi=1&version=3'})
obj.find('param[name=movie]').attr('value', function(i,v){return v+'&enablejsapi=1&version=3'})
$('.play').click(function(){
obj.find('embed')[0].playVideo();
});
$('.pause').click(function(){
obj.find('embed')[0].pauseVideo();
})
});
Phương pháp này hoạt động tuyệt vời trong Firefox, nhưng không phải ở tất cả trong IE hay Chrome (không chắc chắn về các trình duyệt khác). Vì vậy, câu hỏi của tôi là làm thế nào để tôi sửa đổi điều này để làm cho API làm việc trong các trình duyệt khác? Tôi có phải loại bỏ hoàn toàn đối tượng và thay thế nó bằng cách sử dụng SWFObject?
Lưu ý: Mã nhúng trực tiếp từ YouTube.
Cập nhật: tôi đã tìm ra nếu tôi loại bỏ các đối tượng, thêm các thông số url sau đó thêm các đối tượng trở lại, bây giờ tôi có thể lấy nó để làm việc trong Chrome, nhưng vẫn không IE (updated demo).
Phụ lục: Tại sao chức năng YouTube API không được kích hoạt khi đối tượng/nhúng đã bật mã trong đó? Tôi đang cố gắng tránh làm cho SWFObject trở nên phụ thuộc.
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="640" height="385">
<param name="movie" value="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2Qj8PhxSnhg&hl=en_US&fs=1&enablejsapi=1&version=3" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="640" height="385"></embed>
</object>
Các vấn đề dường như là Chrome và IE không cập nhật DOM/nhúng api cho phần tử khi bạn thay đổi thuộc tính src của nó. Mã này hoạt động nếu bạn thêm truy vấn trực tiếp vào mã. Trang web của bạn có yêu cầu trang web được thêm động không? – aolde
@Manticore: Nó không phải là một yêu cầu, tôi đang cố gắng sửa đổi một plugin. Mã/liên kết video được thêm bởi người dùng trong danh sách, vì vậy tôi đã cố gắng xác định cách dễ nhất để thực hiện tác vụ này mà không đặt bất kỳ quy tắc nào như không có thẻ nhúng. – Mottie
Tôi gặp vấn đề tương tự, và IE bắt đầu hoạt động phù hợp với tôi sau khi thêm thuộc tính classid = "clsid: D27CDB6E-AE6D-11cf-96B8-444553540000" mà SWFObject thêm vào. – kamens