2011-08-26 126 views
12

我有一個嵌入了iframe的網站。當我測試iframe時,我使用google.com並注意到搜索輸入字段成爲焦點。顯然,我不會使用google.com進行製作,但希望防止iframe竊取焦點。防止iframe被盜取焦點

有沒有一種方法可以防止iframe竊取焦點?

回答

1

不是。你可以把焦點回到你的窗口,如果焦點移開(警告:我不建議使用該代碼):

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

這有一些不太好的副作用,如不能夠將焦點放在Firefox中的位置欄,或者如果框架也嘗試爭取焦點,則會陷入無限循環。所以如果你想這樣做(這是一個很大的「如果」,我不推薦它),你至少應該將其限制在頁面加載階段,並在此之後改變焦點。

6

如果您有權訪問服務器端腳本,您可以使用它來下載要嵌入的頁面的實時副本,搜索並刪除任何焦點竊取代碼,然後在您的iframe中顯示修改後的頁面。或者,如果您發現沒有焦點竊取代碼,則可以像平常一樣將iframe鏈接到遠程頁面。

另一種選擇可能是最初隱藏與CSS style="display:none"的iframe,並允許用戶使用JavaScript Object.style.display="inline"

0

取消隱藏現在我們可以使用HTML5沙箱屬性用於此目的:

<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

'沙箱'不會阻止在我的測試中重點竊取(在Chrome中)。 –