2011-08-26 25 views
12

iframeを埋め込んだウェブサイトがあります。 iframeをテストしていたときに、google.comを使用して検索入力フィールドに注目したことに気付きました。明らかに、私はプロダクションでgoogle.comを使用しませんが、iframeがフォーカスを奪うのを防ぐためです。iframeがフォーカスを奪うのを防ぐ

iframeがフォーカスを奪うのを防ぐ方法はありますか?

答えて

1

フォーカスが離れる場合は、あなたの窓に背(警告:私は、そのコード使用することはお勧めしません):フォーカスを置くことができます。これは、することができないようないくつかのないとても素敵副作用を持ってい

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

をフレームがまたフォーカスのために戦おうとしている場合は、Firefoxにロケーションバーをフォーカスするか、無限ループに入る。だから、もしこれをしたいのであれば(それは大きな「if」ですが、私はそれをお勧めしません)、少なくともページローディングフェーズに制限し、その後フォーカスを変更する必要があります。

6

サーバー側のスクリプトにアクセスできる場合は、埋め込みたいページのライブコピーをダウンロードして検索し、フォーカススチールコードを削除して、その変更したページをiframeに表示することができます。また、フォーカスを盗むコードが見つからない場合は、iframeをいつものようにリモートページにリンクすることができます。

別のオプションは、最初はCSS style="display:none"でのiframeを隠し、ユーザーが今、私たちは、この目的のためにHTML5のsandbox属性を使用することができますjavascriptのObject.style.display="inline"

0

でそれを再表示することを可能にするかもしれません:

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

パラメータされています:

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

しかし、ここでは、スクリプトを許可していないか、おそらくフォーカスを盗んで生きています。 –

+5

- どのオプションは、フォーカスの盗みを避けることと関係がありますか? – G0BLiN

+0

'sandbox'は私のテストで(Chromeの)フォーカス盗難を防ぐことはできません。 –

関連する問題