2015-02-05 47 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语句隐藏/显示标签。如果有人发现它有用,可以发布代码。