我有带jquery终端的网页和隐藏的textarea(触发Android虚拟键盘),我可以输入字符但是当我输入几个命令时,内容隐藏在虚拟键盘后面.终端内容滚动到底部,因为当我输入更多命令时它会滚动.当我在手机中使用硬件键盘时,滚动是正确的(触摸滚动还没有工作).
我添加了这个CSS
.terminal textarea { top: 0; width:0; margin-left: -8px; pointer-events: none; }
Run Code Online (Sandbox Code Playgroud)
对于prevoius
.terminal .clipboard {
position: absolute;
bottom: 0;
left: 0;
opacity: 0.01;
filter: alpha(opacity = 0.01);
filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0.01);
width: 2px;
}
.cmd > .clipboard {
position: fixed;
}
Run Code Online (Sandbox Code Playgroud)
并在插件中使用此代码(textarea用于剪贴板).
self.click(function() {
self.find('textarea').focus();
});
Run Code Online (Sandbox Code Playgroud)
我的问题是:javascript可以检测出虚拟键盘的大小吗?或者也许还有其他方法来改变网页的大小,所以它只是在视觉部分(不是键盘的位置)?或者我的代码可能有问题,它不适用于移动设备.即使用户安装了不同的键盘,键盘的大小也始终相同吗?
我想在Windows 10上创建一个用于触摸的自定义虚拟键盘.我主要是一个c#开发人员,但如果Windows 10 Dev与之前的版本类似,我可能不得不恢复到C/C++.我希望能够定义按下按键时吐出的所有内容,形状,区域和数据.
Windows 10有一个键盘选择菜单(见图),我希望它与它集成,以便它可以与本机键盘接口一起使用.
我是一位经验丰富的商业应用程序员,但我不知道从哪里开始.我看到这篇文章用于Windows 7键盘,但我希望Windows 10的内容已经发生了变化.
我的问题是:
任何帮助/方向/智慧的话将不胜感激.
更新:我想也许我没有解释得很好.我想构建一个与普通键盘形状不同的虚拟键盘,基本上就像快捷键盘一样.您点击一个键,它会将预设的文本片段插入上下文窗口.并且可以从图中的虚拟键盘选项中选择(蓝色位).
我正在尝试创建一个像khanacademy.org或mathspace.co或类似网站中的虚拟数学键盘,在那里你可以插入数学符号并写下来回答问题,如果你是学生,我怎样才能实现这样的事情?在khanacademy.org,他们使用MathJax,我试着通过文档阅读没有运气.
void WriteChar(char c)
{
INPUT input = {0};
input.type = INPUT_KEYBOARD;
input.ki.wVk= VkKeyScanEx(c, GetKeyboardLayout(0) ) ;
SendInput(1,&input, sizeof(INPUT));
}
Run Code Online (Sandbox Code Playgroud)
VkKeyScanEx为'/'和'?'(相同的键)返回不同的键代码,但是如果您尝试使用此方法编写包含'?'的消息,则只会写'/'.我不知道发生了什么事.同样的事情发生在';' 和':'.
我部分不了解密钥代码和扫描代码.大多数角色都有虚拟键码,但我找不到类似问号的东西.它们必须存在,但没有列出?
我有一个弹出窗口,其底部或我的屏幕上出现了一个广告.我是这样做的,因此用户可以点击x来关闭广告.
当popUpWindow处于活动状态时虚拟键盘出现时,广告仍然可见.如何让键盘对popUpWindow有所保留,或者告诉popUpWindow不在最顶层?
我正在使用Sencha Touch 2.0.1为Android,iOS和Blackberry构建应用程序.
我有一个Form-Panel,有大约10个选择区和一些sextfields.如果我在Android 2.3或更高版本上运行应用程序,则选择字段显示为选择器.到现在为止还挺好.
当用户开始填写以textfields开头的表单时,他可以使用虚拟键盘上的下一个按钮浏览表单.问题是,下一个按钮会忽略选择域.用户必须点击选择字段.
我无法弄清楚如何获得拾取器元素的上一个和下一个按钮.因此,我只能使用下一个按钮而不是按"完成"并点击下一个选择字段来浏览表单.这对用户来说会更舒服.
所以对sencha论坛的支持并没有多大帮助,见下文:
http://www.sencha.com/forum/showthread.php?219636-Native-select-field-for-Android http://www.sencha.com/forum/showthread.php?205581-Can-I-use -iOS本地选取器,INSTEAD-OF-ST2选取器
据此,选择器有prev-next和next按钮:http://www.sencha.com/forum/showthread.php? 205159-Ext.picker.Date-with-no-prev-and-next- 按钮&p = 803794
但我找不到他们:-(
我认为,这个问题有两种解决方案:
我真的不敢相信,这在像Sencha Touch这样的大框架中是如此重要.
任何人都面临同样的问题并有一个有效的解决方案
我知道已经有一些StackOverflow线程关于手机的虚拟键盘隐藏或重叠输入字段,文本区域等问题.但所有这些线程都没用,我搜索了很多,但很多人都在谈论基于Android开发的这个问题,还有一些基于Web开发.
我专注于Web开发.问题是,没有线程可以解决问题或者给出/发布任何真正有用的答案.
所以我开始这个,希望它现在能够解决.那么现在问题直接是什么?
如果您在移动设备上单击可以输入内容的区域,您通常会期望网站向上滚动并且虚拟键盘在可编辑区域之后打开,但发生的情况不是这样的.虚拟键盘只是作为叠加打开 - 它开始重叠可编辑区域.
在我的情况下,我打开一个jQuery UI对话框,其中我的字段位于,但我认为这应该无关紧要.
所以我让我的想法越过并找到了解决方案,以增加一些额外的空间.像这样:JSFiddle.
所以我可以向下滚动.但是这很烦人,因为它没有用,或者对于不使用打开虚拟键盘的设备的人来说不需要.所以我想到了这样一个函数:
function isMobileDevice() {
var isiPhone = navigator.userAgent.toLowerCase().indexOf("iphone");
var isiPad = navigator.userAgent.toLowerCase().indexOf("ipad");
var isiPod = navigator.userAgent.toLowerCase().indexOf("ipod");
var isAndroid = navigator.userAgent.toLowerCase().indexOf("android");
if (isiPhone > -1 || isiPad > -1 || isiPod > -1 || isAndroid > -1) {
return true
} else {
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
好吧,对于这部分将是我的问题,我忘了一个设备,它也打开一个虚拟键盘,主要问题是除了我的解决方法还有什么?我没有找到明确识别虚拟键盘的东西.
伙计们,我刚刚使用三星Galaxy Note和Firefox,Chrome以及Opera的最新移动浏览器版本对其进行了测试.(今天更新了所有三个!)
好的,这是我的结果:

正如你所看到的,除了Firefox之外的所有浏览器都失败了,而且这是我问题的完美视觉示例.虚拟键盘与可编辑区域重叠!通常,我比任何其他浏览器更喜欢Chrome,但对于这种情况,我不得不说 - 好工作Firefox!
我有64位Windows 7专业版,Android SDK和Eclipse的ADT插件.在Android SDK的examples目录中,SoftKeyboard至少有三个不同的目录.我应该使用哪一个?
如何运行SoftKeyboard?我试过了,但根本没用.
你也可以在这里找到它:http://developer.android.com/resources/samples/SoftKeyboard/index.html
android on-screen-keyboard virtual-keyboard soft-keyboard android-softkeyboard
我想禁用在WPF应用程序的输入字段中输入所有Emojis(情感图标).我实现它的方式是:
txtUserName.PreviewTextInput += LoginPreviewTextInput;
Run Code Online (Sandbox Code Playgroud)
LoginPreviewTextInput看起来如下:
private void LoginPreviewTextInput(object sender, TextCompositionEventArgs e)
{
if (!InputValidator.IsValidInput(e.Text))
e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)
InputValidator的IsValidInput如下所示:
public class InputValidator
{
//These characters are allowed in the textbox
private static string pattern = @"^[\w\s,\.\(\)~!@\#\$%\^&\*-=\+\[\]\{\}:;'""<>\?\\|]*$";
public static bool IsValidInput(string previewedInput)
{
var matches = Regex.Matches(previewedInput, pattern);
if (matches.Count == 1)
{
return true;
}
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
奇怪的是它适用于虚拟键盘中的所有表情符号图标,除了快乐表情符号.它不起作用,因为一旦我在Windows虚拟键盘中输入此表情符号,它就不会调用LoginPreviewTextInput(它适用于所有其他Emojis).
快乐表情符号如下图所示:
当快乐表情符号输入文本框时,文本框如下所示:
快乐表情符号已输入文本框.您可以看到,当文本框的文本属性为空时,甚至会显示水印.当我在snoop中查看文本框的text属性时,它确实是空的,并且有界属性是viewmodel为空(从未调用setter).
同样,只发生在这个特定的表情符号(快乐的表情符号)上.所有其他表情符号都到达LoginPreviewTextInput方法,与正则表达式不匹配并被忽略.
我正在增强(在角度指令中)谷歌放置自动完成输入以选择第一个选项(如果没有选择)。
我正在使用下面的代码,当使用“tab”或“enter”键时,它就像一个魅力。
不幸的是,它无法在带有虚拟键盘“下一个”键的Android 设备(chrome)上运行...
这个“下一个”键的 KeyCode 可能是什么,因为它既不是“tab”(9) 也不是“enter”(13)
selectFirstOnEnterOrTab(input) {
// prevent submit on enter (13)
$(input).keydown(function (e) {
if (e.which === 13 && $('.pac-container:visible').length) {
return false;
}
});
// store the original event binding function
const _addEventListener = (input.addEventListener) ? input.addEventListener : input.attachEvent;
function addEventListenerWrapper(type, listener) {
// Simulate a 'down arrow' keypress on hitting 'return' when no pac suggestion is selected,
// and then trigger the original listener.
if (type === 'keydown') {
const …Run Code Online (Sandbox Code Playgroud) virtual-keyboard ×10
android ×3
c# ×2
c++ ×2
jquery ×2
angular ×1
browser ×1
css ×1
events ×1
hidden ×1
javascript ×1
keyboard ×1
khan-academy ×1
latex ×1
mathjax ×1
mathquill ×1
next ×1
overlapping ×1
picker ×1
popupwindow ×1
scancodes ×1
sendinput ×1
winapi ×1
windows-10 ×1
wpf ×1