2009-02-26 34 views
7

Khi flash có trọng tâm bàn phím, CTRL +T (tab mới) và CTRL +N (cửa sổ mới) đều được chặn bởi đèn flash.javascript cho tab mới (CTRL + T), cửa sổ mới (CTRL + N)?

Có cách nào để chuyển các sự kiện này qua trình duyệt để chúng hoạt động (mở tab mới, mở trình duyệt mới) HOẶC có lệnh javascript cho các tác vụ này không?

+0

Tôi luôn muốn đặt câu hỏi này và bạn đã làm điều đó cho tôi. Cảm ơn – Matias

Trả lời

2

Đây là sự cố lâu dài với Flash và trình duyệt. (Và tôi có nghĩa là dài - hãy xem điều này eight-year-old bug trên trình duyệt Mozilla.) Vấn đề là Flash chặn tất cả các sự kiện đầu vào, thay vì trình duyệt. Đó là hộp cát trong môi trường riêng của nó, và không vượt qua các sự kiện trở lại trình duyệt.

Về mặt khái niệm, đây không nhất thiết phải là điều xấu. Điều gì sẽ xảy ra khi Flash muốn nghe sự kiện "ctrl + n"? Trình duyệt có nên lấy nét từ Flash vì nó sử dụng phím nóng đó chưa? Nó sẽ là một nỗi đau thực sự cho các nhà phát triển Flash, đó là chắc chắn.

Đã có đề xuất về cách khắc phục vấn đề này mà tôi đã thấy cho các trình duyệt cụ thể, nhưng không có giải pháp nhận toàn bộ. Ví dụ, this solution được tham chiếu trong lỗi, nhưng rõ ràng nó sẽ không hoạt động theo cách bạn muốn (vì người dùng sẽ phải nhảy qua một vài vòng để làm cho nó hoạt động).

Vì vậy ... không, cho đến bây giờ. Sẽ thực sự gọn gàng nếu vấn đề này có thể được khắc phục.

+1

"Trình duyệt có nên lấy nét từ Flash vì nó sử dụng phím nóng đó chưa?" - Vâng! Flash là "khách" trong "ngôi nhà" của trình duyệt. Và đặc biệt là một hành vi xấu. :-) –

+0

Hahaha, tôi chưa bao giờ nghe thấy sự tương tự của khách trước đây cho các plugin, điều đó thật tuyệt vời. –

1

gần nhất bạn có thể nhận được là phải có ActionScript kích hoạt Javascript để mở một cửa sổ trống để một URL trống

// We abstract it in a function here in case we want to 
// change it later 
function openBlankWindow() 
{ 
    window.open(''); 
} 

Đối với hầu hết mọi người, điều này sẽ mở một cửa sổ mới hoặc một tab mới (tùy thuộc vào sở thích của trình duyệt của họ) nhưng vì nó đang được khởi xướng bởi trang web, có thể phải chịu các trình chặn cửa sổ bật lên.

Không có cách nào để yêu cầu trình duyệt thực hiện cụ thể một trong hai tác vụ mà bạn đang hỏi. Tôi sẽ là một cơn ác mộng về bảo mật/phiền toái nếu các trang web có quyền/đặc quyền để làm điều đó.

+0

Tôi không nghĩ anh ấy muốn cấp quyền truy cập Flash cho trình duyệt nhiều như anh ấy muốn chức năng trình duyệt bình thường hoạt động ngay cả bên trong Flash. –

+0

Tôi biết rằng, đó là lý do tại sao điều đầu tiên tôi nói là "gần nhất bạn có thể nhận được". Việc cho phép các lệnh khóa bật lên từ một bộ phim flash đến trình duyệt là điều mà Adobe chỉ có thể khắc phục. –

+0

Tôi đã trả lời đoạn cuối của bạn, không phải phần còn lại - phần còn lại có ý nghĩa với tôi. –

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