小编Zat*_*ter的帖子

在PhoneGap应用程序中以编程方式在iPhone上显示软键盘?

我一直在寻找很长很长的时间,到目前为止,我没有遇到过可以通过编程方式显示软键盘的PhoneGap/Cordova应用程序的解决方案.

场景:

我们有一个PhoneGap应用程序 - 一个在jQuery Mobile中创建的网站 - 在某一点上显示了一个用户对话框.此对话框也是一个网页,并且只有一个INPUT文本框,用户应在其中输入代码.

问题:

显示代码对话框时,使用JavaScript聚焦输入框.但是,由于iPhone内部浏览器受到限制,在用户实际真正点击输入文本框之前,软键盘才会出现.

我们尝试了什么:

  • 创建一个隐藏的文本框并使其成为第一响应者
  • 一旦输入通过JavaScript获得焦点,使实际webview成为第一响应者
  • 使用sendActionsForControlEvents尝试将触摸事件传递到webview(虽然如果有人有一个PhoneGap应用程序的工作代码,我会很感激,如果他们可以分享它,因为我不是专业的iOS编码)

有任何想法吗?


编辑:此问题中提到的限制仅适用于内置浏览器 ...如果您的目标是Opera,您将通过使用以下代码获得成功:

var e = jQuery.Event("keydown", { keyCode: 37 });
$('#element').focus().trigger(e);
Run Code Online (Sandbox Code Playgroud)

EDIT2:这是一个可以在插件中使用的最终工作PhoneGap代码:

keyboardhelper.h

//
//  keyboardHelper.h
//  soft keyboard displaying plugin for PhoneGap
//
//  Copyright 2012 Martin Ambrus.
//

#import <Foundation/Foundation.h>
#ifdef CORDOVA_FRAMEWORK
#import <Cordova/CDVPlugin.h>
#else
#import "CDVPlugin.h"
#endif

@interface keyboardHelper : CDVPlugin {
    NSString *callbackID;
}

@property (nonatomic, copy) NSString …
Run Code Online (Sandbox Code Playgroud)

iphone cordova iphone-softkeyboard

27
推荐指数
3
解决办法
2万
查看次数

JavaScript中的十进制比较失败

我需要在jquery中使用十进制比较来比较以下场景.

var a=99999999999.99;
var b=9999999999999999999

if(parseFloat(a).toFixed(2) > parseFloat(b).toFixed(2))
Run Code Online (Sandbox Code Playgroud)

这总是会回来的true.如何解决问题?

我试过的一些输出:

parseFloat(9874563212).toFixed(2) > parseFloat(98745632).toFixed(2) true
parseFloat(98745632).toFixed(2) > parseFloat(987456321).toFixed(2) false
parseFloat(99999999999.99).toFixed(2) > parseFloat(9999999999999999999).toFixed(2) true
parseFloat(99999999999.99).toFixed(2) > parseFloat(999999999999).toFixed(2) false
parseFloat(99999999999.99).toFixed(2) > parseFloat(9999999999999).toFixed(2) false
parseFloat(99999999999.99).toFixed(2) > parseFloat(99999999999999).toFixed(2) false
parseFloat(99999999999.99).toFixed(2) > parseFloat(999999999999999).toFixed(2) false
parseFloat(99999999999.99).toFixed(2) > parseFloat(9999999999999999).toFixed(2) true
parseFloat(99999999999.99).toFixed(2) > parseFloat(1111111111111111).toFixed(2) true
parseFloat(99999999999.99).toFixed(2) > parseFloat(111111111111111).toFixed(2) true
Run Code Online (Sandbox Code Playgroud)

javascript jquery

14
推荐指数
1
解决办法
3万
查看次数

livequery表现

我最近发现 jQuery的livequery插件可能非常浪费,因为它不使用事件委托但绑定所有可绑定事件并在每次更改时重新检查整个DOM

如果有人使用livequery和.live()获得有关最佳实践的更多信息或建议,我将非常感激

jquery livequery

11
推荐指数
1
解决办法
4625
查看次数

从历史对象获取最后一页网址 - 跨浏览器?

嘿伙计们 - 一个简单的问题,对我来说还没有简单的答案:)

是否可以从历史对象中获取最后一页网址?我已经来过历史了.但是,这可能是未定义的,也可能不受我所见过的影响

javascript

6
推荐指数
1
解决办法
2万
查看次数

Thawte驱动程序签署64位Windows

如果这个问题偏离主题,请推荐另一个StackExchange网站发布:-)

我们公司最近从Thawte购买了G2代码签名证书.我已经完成了签署64位驱动程序所需的所有步骤,因此可以在Windows 7 64位下安装.

即,我有:

  • 下载了G2 Thawte交叉证书
  • 获得了我们自己的Thawte证书(实际上是一个.p12文件,我必须导入并重新导出为.pfx文件才能工作)
  • 通过以下命令成功签署了驱动程序:signtool.exe sign/ac cross.cer/f private_key.pfx/p*****/t"http://timestamp.verisign.com/scripts/timstamp.dll"/ v my_driver.sys
  • 将我们的公司证书(甚至所有那些Thawte证书,当第一个不起作用时)导入机器的受信任的根权限和受信任的发布者
  • 将thawte交叉证书导入中级证书颁发机构

我已经尝试使用已经通过的signtool.exe verify/pa/v my_driver.sys来验证签名.如果我不在命令行中使用/ pa,则会出现"SignTool错误:已处理证书链,但终止于信任提供程序不信任的根证书".(这是我应该担心的事情吗?)

现在,当我尝试使用简单的INF文件(而不是cab文件)安装驱动程序时,结果是关于Windows无法验证驱动程序的发行者的红色警告.当我选择不安装驱动程序时,我收到以下额外消息:无法验证文件,因为它没有通过Authenticode(tm)签名的关联目录.

我已经读过Thawte过去不能真正用来签这样的驱动程序,因为不知何故MS停止支持它,但它仍然在他们的网站上列出了交叉证书.不确定这是否仍然有效,无法找到任何证据.

任何建议将不胜感激.

security code-signing code-signing-certificate

6
推荐指数
1
解决办法
1804
查看次数

TypeError:'undefined'不是函数(评估'$("#wnd_Addparam")..dialog')

我有两个月的例子,我改变了PC.现在这似乎不再起作用了.这是一个应该通过(按下)按钮加载小窗口对话框的示例.但是,它不起作用......这是我的代码:

<html>
<head>
 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
  <script type="text/javascript">
// <---- VENTAÑAS DE PARAMETERES---->

var regex,v,l,c,b;
$( "#wnd_Addparam" ).dialog({
            autoOpen: false,
            height: 'auto',
            width: 350,
            modal: true,
            resizable:false,
            buttons: {
                "Add": function() {
                                $( this ).dialog( "close" ); 
                                   },
                Cancel: function() {
                    $( this ).dialog( "close" );
                }
            },
            close: function() {
                $( this ).dialog( "close" );
            }
        });

        $( "#btn_Addpar" ).click(function() {
                $( "#wnd_Addparam" ).dialog( "open" );
            });
$( "#wnd_Paramedit" ).dialog({
            autoOpen: false,
            height: 'auto',
            width: 350,
            modal: true,
            resizable:false,
            buttons: …
Run Code Online (Sandbox Code Playgroud)

javascript jquery dialog jquery-ui

6
推荐指数
1
解决办法
1万
查看次数

KnockoutJS自定义绑定多次触发

我正在尝试使用acustom绑定显示通知DIV,同时还通过2个observable调整DIV的CSS和HTML.

问题是,当我改变这些观测2的值,这也激发了自定义绑定,以及由于某种原因.

模板:

<div class="alert top-alert" data-bind="fade: topMessageShow, css: topMessageType, html: topMessage"></div>
Run Code Online (Sandbox Code Playgroud)

自定义处理程序:

ko.bindingHandlers.fade = {
  update: function resolveFade(element, valueAccessor, allBindingsAccessor) {
    if (ko.utils.unwrapObservable( valueAccessor() )) {
      $(element).hide().delay(300).fadeIn('slow');
    } else {
      // fade out the notification and reset it
      $(element).fadeOut('slow', function() {
        // reset those 2 observables that set class and HTML of the notification DIV
        MyClass.topMessageType('');
        MyClass.topMessage('');
      });
    }
  }
};
Run Code Online (Sandbox Code Playgroud)

触发代码:

MyClass.topMessageType('alert-info');
MyClass.topMessage(msg);
MyClass.topMessageShow(true);
Run Code Online (Sandbox Code Playgroud)

JSFiddle: http ://jsfiddle.net/UrxXF/1/

knockout-2.0 knockout.js

5
推荐指数
1
解决办法
2022
查看次数

在Objective-C中合并5个NSStrings

我有多个NSStrings,我希望将它们合并到另一个,这是我的代码到目前为止...

NSString *newURL = [_parameters objectForKey:@"url"];
NSString *emailBody = @"Hey!<br>I just snipped my long url with <a href=\"...\">My Cool App for iPhone</a> in just a few seconds!<p><b><a href=\""+newURL+@"\">"+newURL+@"</a></b></p>";
Run Code Online (Sandbox Code Playgroud)

merge objective-c nsstring

2
推荐指数
1
解决办法
5485
查看次数

PHP加起来MD5哈希?

我正在使用+符号来添加2个MD5哈希,如下所示:

md5('string1') + md5('string2')
Run Code Online (Sandbox Code Playgroud)

现在如果我用字符串做这个,就像这样:

'string1' + 'string2'
Run Code Online (Sandbox Code Playgroud)

... PHPp会给我0作为返回值.但是,对于MD5哈希,它总是返回一个数值,我无法确定任何原点.

php md5

0
推荐指数
1
解决办法
516
查看次数