Tag: JavaScript

removeChild有时会删除整个跨度,有时则不会

我正在开发一个用于iOS的富文本编辑器,并且大部分都在工作但遇到无穷无尽的问题,确保在用户开始键入时光标在视口中可见。 我提出了一种新颖的方法:在光标位置插入一个跨度,滚动到跨度,然后将其删除。 (如果跨度在屏幕上,我还没有滚动。)这是我写的: document.addEventListener(‘keypress’, function(e) { jumpToID(); }, false); function jumpToID() { var id = “jumphere2374657″; var text = ” ” document.execCommand(‘insertHTML’, false, text); var element = document.getElementById(id); element.scrollIntoView(); element.parentNode.removeChild(element); } 在某些情况下,这样可以正常工作,在某些情况下,它会在每次按键之间留下不间断的空间,仅删除 标记。 有任何想法吗? 如果有人有建议,我愿意接受更好的方法。 我对使光标显示有多难感到震惊,但JS对我来说是新手。 编辑 这是有效的代码: var viewportHeight = 0; function setViewportHeight(vph) { viewportHeight = vph; if(viewportHeight == 0 && vph != 0) viewportHeight […]

如何从JavaScript调用Objective-C方法?

我想在UIWebView上显示SQLite数据库内容。 为此,我有一个本地HTML文件。 在html文件中调用JavaScript函数的Body load。 在Java Script内部如何调用Objective-c方法。 如何从Objective c获取数据到Java Srcipt。 Objective-C代码…… – (void)viewDidLoad { [super viewDidLoad]; NSString *path; NSBundle *thisBundle = [NSBundle mainBundle]; path = [thisBundle pathForResource:@”Demo” ofType:@”html”]; // make a file: URL out of the path NSURL *instructionsURL = [NSURL fileURLWithPath:path]; [myWebView loadRequest:[NSURLRequest requestWithURL:instructionsURL]]; [self.view addSubView:myWebView]; } -(NSArray*)FetchingDataFromDataBase{ // Code for retriving data from SQlite […]

仅防止水平滚动移动应用

我正在开发一个网络应用程序。 左侧是使用Sidr-plugin( jQuery插件:Sidr )的侧边栏。 测试站点在我的开发服务器上 。 我的问题是,如果我从左向右滑动,则会显示侧边栏。 这是非常好的。 但是,如果我想通过从右向左滑动来关闭侧边栏,我必须通过添加以下代码来阻止滚动: $(‘body’).bind(‘touchmove’, function(e){e.preventDefault()}) 我这样做了,但现在:我在页面顶部(菜单)的导航function不正常。 我不能滚动直到最后。 所以我的问题是:我怎样才能改变这一点。 如果我要关闭左侧的边栏,它应该只能阻止垂直滚动。 这是我完整的JavaScript: $(function(){ $(document).foundation(); $(‘#sidebar-toggle’).sidr(); var hammertime = Hammer(document.getElementById(“wrapper”)).on(“swiperight”, function(event) { $.sidr(‘open’); }); var hammertime = Hammer(document.getElementById(“wrapper”)).on(“swipeleft”, function(event) { $.sidr(‘close’); }); var hammertime = Hammer(document.getElementById(“content”)).on(“tap”, function(event) { $.sidr(‘close’); }); $(‘body’).bind(‘touchmove’, function(e){e.preventDefault()}) });

如何在本机中同时启用触摸多个按钮?

我需要的是当我触摸并按住一个按钮时,我也应该能够触摸按钮1。 this.console(“Button 2 Clicked”)}> BUTTON 2 this.console(‘Button 1 pressed’)} onPressOut={()=>this.console(‘Button 1 released’)}> BUTTON 1 基本上,我有一个屏幕,我可以通过点击并按住录制按钮(按钮1)来录制video。 在同一个屏幕上,我有一个翻盖相机按钮(按钮2)。 我希望我能够在录制video时点击翻盖相机按钮。

JavascriptCore:在JSExport中将javascript函数作为参数传递

JavascriptCore是iOS7支持的新框架。 我们可以使用JSExport协议将部分objc类暴露给JavaScript。 在javascript中,我试图将函数作为参数传递。 像这样: function getJsonCallback(json) { movie = JSON.parse(json) renderTemplate() } viewController.getJsonWithURLCallback(“”, getJsonCallback) 在我的objc viewController中,我定义了我的协议: @protocol FetchJsonForJS – (void)getJsonWithURL:(NSString *)URL callback:(void (^)(NSString *json))callback; – (void)getJsonWithURL:(NSString *)URL callbackScript:(NSString *)script; @end 在javascript中,viewController.getJsonWithURLCallbackScript可以工作,但是,viewController.getJsonWithURLCallback不起作用。 我在JSExport中使用了块有什么错误吗? 谢谢。

多次触摸:touchend事件仅在发生touchmove时触发

我想从ios设备(以后可能是android)访问我的javascript应用程序时添加一些多点触控function。 我想提供类似shiftkey的function:用户可以用一根手指按住屏幕上的按钮,按下此按钮时,屏幕其余部分的点按动作的行为与经典点击略有不同。 我遇到的问题是我没有收到任何触发手指的触摸事件,除非第一根手指按住shift键按钮触发了触摸 。 由于屏幕非常敏感,因此触摸移动事件很容易被触发,并且在大多数情况下一切正常。 但是当用户的手指有点太静止时,直到用户稍微移动他的手指才检测到敲击。 这会在敲击和屏幕上发生的动作之间产生可变的“延迟”(如果用户非常平静,则延迟可能会发生变化并持续几秒钟)。 我的猜测是,这种延迟会导致用户再次点击,从而第二次触发动作,这是我不想要的! 你可以用ipad / iphone在这里测试一下: http : //jsfiddle.net/jdeXH/8/ 在点击红色div时,将手指静止地放在青色div上,尝试让身体保持绿色几秒钟。 这种行为是期待的吗? 这个问题有一些已知的解决方法吗? 我本以为当手指从屏幕上移开时,会立即触发touchend事件。 我用iOS 5.1.1(ipad1和iphone4s)测试了这个 编辑:发现类似的问题Multitouch touchEvents未在Safari Mobile上触发

如何从Objective C方法将包含JSON的JSON NSString传递给Javascript方法

我有一个要求,即objective C code should使用WebService并且以JSON format接收的响应必须作为参数传递给javascript方法以进行进一步处理。我正在使用UIWebView ,它将在处理JSON response.后显示相应的结果JSON response. 当我尝试将JSON字符串传递给Javascript方法时出现问题.Javascript方法不会简单地接受输入。 – (void)connectionDidFinishLoading:(NSURLConnection *)connection { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; NSString *responseString = [[NSString alloc] initWithBytes:[resultData bytes] length:[resultData length] encoding:NSUTF8StringEncoding]; NSLog(@”%@”,responseString); [self returnResponseToJavaScriptMethods:responseString]; } -(void)returnResponseToJavaScriptMethods:(NSString*)theResponse{ [viewMainWebView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@”retrieveServerResponse(‘%@’)”,theResponse]]; } 有什么我错过了吗? 使用相同的方法正确传递简单的字符串。 更新 :将responseData编码为UTF8StringEncoding就可以了。 [theResponse stringByAddingPercentEscapesUsingEncoding: NSUTF8StringEncoding]

如何在JavaScript中播放声音

我有以下内容: 然后在我的JavaScript中,我有: var ClickDown = $(‘#clickdown-wav’)[0]; $(document).delegate(‘a’,’click’,function() { ClickDown.play(); }); 问题是,当我按下锚标签时,它(在iPad上)不是太敏感。 按下锚标记和播放wav文件之间存在明显的滞后。 问:是否只有源代码解决方案来播放JavaScript中的声音? Clickdown.wav只有1k。

为什么iPhone Safari上没有JavaScript .play()音频文件?

我有一个JavaScript网络应用程序工作,定期播放一些音频像这样: var SOUND_SUCCESS = new Audio(‘success.mp3’); SOUND_SUCCESS.play(); 这适用于桌面浏览器(在Edge和Chrome中测试),但它不能在iPhone上的Safari上播放。 我查看了Stack Overflow,几年前我发现一些答案,除非你在全屏播放器中,否则不可能从Safari播放音频。 这仍然是这样吗?

通过css / js / html强制设备定位到风景?

可能重复: 移动网站 – 仅强制横向/无自动旋转 我已经看过几篇关于此的post ,但没有真正找到明确的答案,而是一些建议的解决方法。 是否可以通过网页强制设备方向? 即:我可以将我的网站“堵塞”为景观吗? 非常感谢