我正在使用javascript创建windows phone 8.1应用程序,我为我的应用程序创建了一个自定义键盘,但是当我点击输入/文本字段时,Windows手机键盘会弹出。我想仅为我的应用禁用它。
我做了一件事
<body id="body">
<textarea id="input" onclick="loseFocus()"></textarea>
<script>
function loseFocus(){
document.getelementById("body").focus();
}
</script>
</body>
但它不能像我想的那样工作.. 因为它失去了焦点,它失去了闪烁的光标,无法写入textarea
更新 我想以一种新的方式去做。 我正在使用iframe而不是textarea并编辑iframe或输入文本我正在使用innerHTML属性
并弹出一个onClick事件我的自定义键盘 现在的问题是我希望iframe中的光标闪烁,我在其中工作
答案 0 :(得分:2)
如果你将焦点设置到其他UI元素,那么显然它会失去闪烁的光标,虽然键盘不见了。 由于您在使用TextBox时无法禁用键盘,因此可以执行this
等技巧答案 1 :(得分:2)
您遇到的问题是,焦点事件的TextBox控件被手机本身截获并且它会使键盘运行。
简而言之,没有办法解决这个问题。但是,还有另一种方法。
构建自己的文本框控件......这听起来很疯狂,但是它呢?并不是的。我一直在工作时构建自定义控件。通常认为它们是其他预制控件的组合,但它们仍然是UserControls。
那么让我们想一想,如何制作自己的?
我不确定您是否能够在项目中使用XAML元素。但是,如果您在这里是如何使用用户控件执行此操作。否则,您将需要研究如何进行自定义Web控件。可能是CSS和HTML的混合
从像这样简单的事情开始
<Grid> <--- Handle your tap event
<Border>
<TextBlock> <-- Databind this to a string property in your back end code
让你的网格处理你的点击事件。
将XAML
视为一个愚蠢的蛋糕。点击Textblock
时,如果没有处理水龙头,则会进入边界,然后是网格。因此,如果您使用网格处理水龙头,它也会消耗内部水龙头。
那么你在点击活动中做了什么?
这里是您展示自定义键盘的地方。您想要识别哪个自定义TextBlock被点击了。您可以通过在每个上面添加自定义标记来实现此目的。
当您的用户在自定义键盘上键入时,请更改TextBlock绑定的属性值。这将更新屏幕上的文本。
这几乎是一个基本的文本块。
以下是从这篇文章中得出的假设:
您知道用户控件是什么
您知道如何使用DataBind
您了解2路DataBinding
希望这有帮助!
答案 2 :(得分:1)
您可以以1秒的间隔更新文本区域的内容。以秒为间隔追加/删除|
字符。
setTimeout(function() {UpdateContent()}, 1000);
答案 3 :(得分:0)
我遇到了类似的问题。
我的解决方法是在文本框下创建一个文本块,让它共享文本框的内容。 然后,我在两者之间切换可见性状态,以防止键盘在不需要时显示。
这是一个黑客,但它适用于我的情况。