2015-02-05 106 views

回答

0

Opera Mini supportsonfocusonblur事件。因此,您可以添加處理程序以在focus事件上隱藏佔位符,並在blur事件(簡單情況)上顯示。

我對iOS Opera Mini和Android Opera Mini(最新版本)的測試顯示,只有在設備鍵盤上按done(例如來自docs的this video)時,佔位符polyfill才能正常工作。如果你敲擊鍵盤外部的文本輸入將失去焦點,但模糊手柄不會觸發。也不是,這種行爲是真實的,因爲Opera Mini渲染不在您的設備上運行。更多信息here

我的test code,我創建了一個帶有2個文本輸入的表單,並將第一個輸入處理程序添加到屬性中。對於第二個輸入,我添加使用addEventListener的處理程序。

HTML:

<form action=""> 
    <input type=text value="Аttributes handler" onfocus="(this.value === 'Аttributes handler') && (this.value = '')" onblur="(this.value === '') && (this.value = 'Аttributes handler')"> 
    <br><br> 
    <input type=text value="" data-placeholder="Listener handler"> 
    </form> 

的Javascript:

document.addEventListener('DOMContentLoaded', function() { 
    var listenerInputNode = document.querySelector('input:last-child'), 
     placeholderText = listenerInputNode.getAttribute('data-placeholder'); 

    (listenerInputNode.value === '') && (listenerInputNode.value = placeholderText); 

    listenerInputNode.addEventListener('focus', function() { 
    (this.value === placeholderText) && (this.value = ''); 
    }, false); 
    listenerInputNode.addEventListener('blur', function() { 
    (this.value === '') && (this.value = placeholderText); 
    }, false); 

}); 

所以,我覺得真的是有在Opera Mini的佔位符的工作填充工具,但focus/blur事件真的像您期望不火。

+0

不知道我已經解釋清楚自己了。佔位符文本在頁面初始加載時不顯示,與其他帶有HTML5佔位符支持的瀏覽器或JS回退相同。因此,對於輸入字段,我不使用標籤,我完全依賴佔位符文本告訴用戶輸入什麼內容。 – 2015-02-11 18:47:07

0

設法使用某些UA嗅探來檢測Opera Mini並使用if語句隱藏/顯示標籤。如果有人發現它有用,可以發佈代碼。