2011-08-26 29 views
12

Tôi có trang web nhúng khung nội tuyến. Khi tôi thử nghiệm iframe, tôi đã sử dụng google.com và nhận thấy trường nhập tìm kiếm đã tập trung. Rõ ràng, tôi sẽ không sử dụng google.com để sản xuất nhưng muốn ngăn chặn iframe lấy cắp tiêu điểm.Ngăn chặn khung nội tuyến lấy cắp tiêu điểm

Có cách nào để ngăn chặn khung nội tuyến lấy cắp trọng tâm không?

Trả lời

1

Không thực sự. Bạn có thể đặt trọng tâm trở lại trên cửa sổ của bạn nếu trọng tâm di chuyển xa (CẢNH BÁO: Tôi không khuyên bạn sử dụng mã):

<body onblur="window.focus();"> 

này có một số không tốt bụng tác dụng phụ như không thể tập trung thanh vị trí trong Firefox hoặc vào các vòng lặp vô tận nếu khung cũng cố gắng chiến đấu cho tiêu điểm. Vì vậy, nếu bạn muốn làm điều này (đó là một "lớn nếu", tôi không khuyên bạn nên nó) bạn nên ít nhất là giới hạn nó vào giai đoạn tải trang và cho phép tập trung được thay đổi sau đó.

6

Nếu bạn có quyền truy cập vào tập lệnh phía máy chủ, bạn có thể sử dụng nó để tải xuống bản sao trực tiếp của trang bạn muốn nhúng, tìm kiếm và xóa bất kỳ mã lấy nét nào, sau đó hiển thị trang đã sửa đổi đó trong iframe của bạn. Hoặc nếu bạn thấy không có mã lấy cắp tiêu điểm, bạn chỉ có thể liên kết iframe của mình với trang từ xa như bình thường.

tùy chọn khác có thể là bước đầu ẩn iframe với CSS style="display:none" và cho phép người sử dụng để thôi ẩn nó với javascript Object.style.display="inline"

0

Bây giờ chúng ta có thể sử dụng thuộc tính sandbox HTML5 cho mục đích này:

<iframe sandbox="allow-same-origin allow-scripts allow-popups allow-forms" src="http://www.example.com"</iframe> 

thông số là :

Property    : Allows 
allow-top-navigation : top-level redirects 
allow-forms   : form submission 
allow-popups   : popups 
allow-pointer-lock : pointer lock 
allow-same-origin : the document to maintain its origin 
allow-scripts  : JS 
+0

Nhưng ở đây các tùy chọn của bạn không cho phép tập lệnh hoặc sống với việc lấy cắp tiêu điểm có lẽ. –

+5

Vì vậy - tùy chọn nào có liên quan đến việc tránh ăn trộm tập trung? – G0BLiN

+0

'sandbox' KHÔNG ngăn chặn lấy cắp tiêu điểm trong các thử nghiệm của tôi (trong Chrome). –

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