2011-08-26 13 views
12

Mam witrynę internetową, która osadza element iframe. Gdy testowałem element iframe, skorzystałem z google.com i zauważyłem, że pole wprowadzania w wyszukiwarce stało się aktywne. Najwyraźniej nie będę używać google.com do produkcji, ale chciałbym zapobiec kradzieży fokusu przez iframe.Zapobieganie kradzieży elementu iframe pod numerem

Czy istnieje sposób na uniknięcie kradzieży fokusu przez element iframe?

Odpowiedz

1

Niezupełnie. Można położyć nacisk powrotem na okno, jeśli ostrość oddala (Ostrzeżenie: Nie zaleca się używania tego kodu):

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

Ma to pewne nie tak ładne efekty uboczne jak nie jest w stanie skoncentruj pasek adresu w przeglądarce Firefox lub wejdź w niekończące się pętle, jeśli ramka również próbuje walczyć o ostrość. Więc jeśli chcesz to zrobić (to duże "jeśli", nie polecam tego) powinieneś przynajmniej ograniczyć to do fazy ładowania strony i pozwolić, aby fokus został zmieniony po tym.

6

Jeśli masz dostęp do skryptów po stronie serwera, możesz go użyć do pobrania kopii na żywo strony, którą chcesz osadzić, przeszukać i usunąć kod kradzieży fokusu, a następnie wyświetlić tę zmodyfikowaną stronę w elemencie iframe. Lub jeśli okaże się, że nie ma kodu kradzieży ostrości, możesz po prostu jak zwykle połączyć swoje iframe ze zdalną stroną.

Inną opcją może być początkowo ukryć iframe z CSS style="display:none" i umożliwić użytkownikowi odkryć ją javascript Object.style.display="inline"

0

Teraz możemy użyć atrybutu piaskownicy HTML5 do tego celu:

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

parametry są :

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

Ale tutaj opcje nie pozwalają na skrypty lub żyją z kradzieży fokusu przypuszczalnie. –

+5

A więc - która opcja ma coś wspólnego z unikaniem kradzieży ostrości? – G0BLiN

+0

'piaskownica' NIE przeszkodzi w kradzieży ostrości w moich testach (w Chrome). –

Powiązane problemy