我有一個嵌入了iframe的網站。當我測試iframe時,我使用google.com並注意到搜索輸入字段成爲焦點。顯然,我不會使用google.com進行製作,但希望防止iframe竊取焦點。防止iframe被盜取焦點
有沒有一種方法可以防止iframe竊取焦點?
我有一個嵌入了iframe的網站。當我測試iframe時,我使用google.com並注意到搜索輸入字段成爲焦點。顯然,我不會使用google.com進行製作,但希望防止iframe竊取焦點。防止iframe被盜取焦點
有沒有一種方法可以防止iframe竊取焦點?
不是。你可以把焦點回到你的窗口,如果焦點移開(警告:我不建議使用該代碼):
<body onblur="window.focus();">
這有一些不太好的副作用,如不能夠將焦點放在Firefox中的位置欄,或者如果框架也嘗試爭取焦點,則會陷入無限循環。所以如果你想這樣做(這是一個很大的「如果」,我不推薦它),你至少應該將其限制在頁面加載階段,並在此之後改變焦點。
如果您有權訪問服務器端腳本,您可以使用它來下載要嵌入的頁面的實時副本,搜索並刪除任何焦點竊取代碼,然後在您的iframe中顯示修改後的頁面。或者,如果您發現沒有焦點竊取代碼,則可以像平常一樣將iframe鏈接到遠程頁面。
另一種選擇可能是最初隱藏與CSS style="display:none"
的iframe,並允許用戶使用JavaScript Object.style.display="inline"
取消隱藏現在我們可以使用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
但是,在這裏你的選擇是不允許腳本或生活焦點偷竊大概。 –
那麼 - 哪個選項與避免焦點竊取有關? – G0BLiN
'沙箱'不會阻止在我的測試中重點竊取(在Chrome中)。 –