【问题标题】:Open the Keyboard of an iPad through JavaScript on a non-text field?通过 JavaScript 在非文本字段上打开 iPad 的键盘?
【发布时间】:2011-07-18 20:14:49
【问题描述】:

我有一个通过一些巧妙的 javascript 充当文本框的 div。是的,闻起来很臭,但这是我无法更改的供应商代码:(

在 iPad 上,键盘不显示,因为它不是文本字段。有没有办法通过javascript强制打开键盘,或者用告诉Safari“是的,这真的是一个文本字段,相信我!”的东西来装饰HTML?

【问题讨论】:

  • 我不认为这可能我害怕......有很多人问同样的问题:google.co.uk/…
  • 如果你可以用 javascript 影响页面,你可以创建一个文本框来替换 div...
  • @Charles 是的,但是我还必须添加供应商现有的所有 JavaScript 逻辑。我可以这样做,但如果有办法避免它,那就太好了

标签: javascript html ios ipad


【解决方案1】:

根据我的经验,无法通过 Javascript 调出 iPad 或 iPhone 键盘。我最终使用了一个可能有用的解决方法。

我只是在有问题的 div 上放置一个不透明度设置为 0 的文本字段。然后我使用更改时的文本字段内容更新 div。

像这样(使用jQuery)

$('textarea').bind('input', function(e){
    var changedVal = $( e.currentTarget ).val();
    $('div').html( changedVal );    
});

// The input event is not a cross browser solution, use a combination of 
// keyboard and mouse events to correctly respond to any changes in the textarea

如果您的供应商代码依赖键盘或鼠标事件侦听器来实现这一点,您可以将所有事件类型代理到下面的 div 上。

类似的东西(使用 jQuery)

$('textarea').bind('keyup keydown keypress mouseup mousedown click', function(e) {
    e.currentTarget = $('div').get(0);
    $('div').trigger(e);
});

【讨论】:

    猜你喜欢
    • 2021-06-19
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    • 2020-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多