Tôi chỉ biết cách hoạt động của tính năng này trong Gecko (công cụ hiển thị của Firefox). Trong công cụ đó, không, bạn không thể di chuyển <object>
hoặc <embed>
trong cây DOM mà không cần tải lại đối tượng Flash được liên kết. Nó thực sự tồi tệ hơn thế: bạn không thể làm bất cứ điều gì có thể gây ra hộp CSS được rút ra bởi đối tượng Flash sẽ bị hủy. Gecko xử lý các hộp CSS là không lâu; hầu như bất kỳ sửa đổi DOM nào liên quan đến subtree có chứa <object>
sẽ phá hủy hộp CSS được liên kết, và như vậy sẽ có bất kỳ số lượng thao tác CSS nào khác nhau từ tập rõ ràng (đặt display:none
) đến tối nghĩa (thay đổi opacity
hoặc overflow
). Nhưng trạng thái của plugin được gắn vào cây hộp chứ không phải là cây DOM, vì vậy nếu hộp bị hủy và tái tạo, plugin sẽ được tải lại.
Điều này đã được chấp nhận là lỗi — bug 90268, chín tuổi theo văn bản này. Xem, đặc biệt, comment 80 cho lời giải thích thực sự dài về lý do tại sao điều này là và tại sao, buồn để nói, tôi sẽ không ngạc nhiên nếu nó đã đi thêm chín năm mà không nhận được cố định.
Có thể bạn có thể giải quyết vấn đề này bằng cách xuất tất cả trạng thái plugin của bạn sang JavaScript trong trang chứa.
CẬP NHẬT: Chỉ hai năm sau, lỗi đã được sửa! Bản sửa lỗi sẽ có trong Firefox 13, hiện được lên lịch phát hành vào ngày 5 tháng 6 năm 2012; nếu bạn muốn nó sớm hơn, nó sẽ có trong "beta" vào ngày 24 tháng 4 và "aurora" ngay sau ngày 13 tháng 3 (hôm nay là ngày hôm nay). Josh Aas xứng đáng nhận được nhiều tín dụng để đấu vật này với mặt đất — bản sửa lỗi đã trải qua 54 bản sửa đổi và sửa đổi hơn 3.000 dòng mã.
Một câu trả lời rất thông minh, cảm ơn thời gian của bạn ... Tôi đặc biệt thích đọc lỗi 90268! Trong khi tôi không gần gũi hơn với việc di chuyển một đối tượng Flash, tôi muốn nói rằng các giới hạn như thế này cũng quan trọng như việc biết tôi có thể làm gì. – JKS
Bạn được chào đón. Nó xảy ra với tôi rằng, tùy thuộc vào mục tiêu lớn hơn của bạn là gì, bạn có thể thoát khỏi một thùng chứa 'position: absolute' có thuộc tính' top'/'left' mà bạn thao tác từ JS? – zwol
Vậy, đây có phải là vấn đề cụ thể của Gecko không?Nó không xảy ra với các trình duyệt khác, phải không? – jayarjo