2010-09-03 11 views
6

Tôi đã nhận thấy lỗi này khi phát triển ứng dụng flash của tôi trên nền tảng cửa sổ. Nếu nhập văn bản vào hộp văn bản trong Flash swf đang chạy trong trình duyệt Safari 5 trên Windows thì nhấn backspace trình duyệt sẽ chuyển đến trang trước đó trong lịch sử thay vì thực hiện chức năng mà backspace được cho là - đây là liên kết đến một báo cáo khác điều này lỗi táo -Lỗi Windows Safari 5 khi sử dụng backspace trong ứng dụng web Flash

http://www.ruelke.org/blog-entry-138.html

Làm thế nào chúng ta có thể làm việc xung quanh vấn đề táo này? chúc mừng

Trả lời

2

wmode Những gì bạn đang sử dụng? Thử đặt wmode thành opaque. Có rất nhiều lỗi đầu vào bàn phím khi sử dụng wmode trong suốt.

+1

Giải pháp này hoạt động. – Robusto

+0

Có Tôi đang sử dụng wmode minh bạch .. cảm ơn tôi sẽ cố gắng mà ra. – undefined

0

Bạn đã thử với nightly chưa? Nếu nó vẫn còn bị hỏng bạn nên nộp một lỗi tại http://bugs.webkit.org đó thực sự là cách tốt nhất để có được lỗi cố định.

0

Bạn đang nhắm mục tiêu phiên bản trình phát flash nào? Tôi đã nhận thấy rằng tiêu điểm bàn phím được xử lý khác nhau khi xuất bản từ CS5.

0

Bạn có thể sử dụng JavaScript để hi-jack sự kiện quan trọng trước khi safari xử lý nó hay không. Tôi biết trên yahoo mail (khá khó chịu) cntrl-w đóng một tab mail, không phải là tab thực tế.

Something như thế này cho các sự kiện nhấn phím:

function preventBackspace(e) { 
    var evt = e || window.event; 
    if (evt) { 
     var keyCode = evt.charCode || evt.keyCode; 
     if (keyCode === 8) { 
      if (evt.preventDefault) { 
       evt.preventDefault(); 
      } else { 
       evt.returnValue = false; 
      } 
     } 
    } 
} 

lấy từ here

+0

Điều này không hiệu quả. Tôi vừa mới gặp lỗi này và cố gắng giết sự kiện tuyên truyền. Nó bị giết ở cấp độ thành phần và không được kích hoạt ở cấp ứng dụng (cũng không nên) nhưng không được chuyển đến Safari. Tuy nhiên, việc đặt wmode = "opaque" sẽ giải quyết được vấn đề. – Robusto