Tag: JavaScript

如何在Safari中打开外部链接而不是应用程序的UIWebView?

我有一个Phonegap(cordova)应用程序,我想要在phonegap WebView中加载一些外部网页,我还有其他外部网页,当用户激活它们时,我想在Safari中加载它们。 通常,大多数人都有他们想要在WebView中打开外部链接的问题。 将OpenAllWhitelistURLsInWebView设置为YES (在Cordova.plist / Phongap.plist中)解决了这个问题。 但是我不想打开WebView的所有链接,只是一些。 我希望我可以调用window.open('http://someexternalsite')在Safari中打开, window.parent.location.href = 'http://mysite'在WebView中打开它。 任何想法如何做到这一点?

移动设备网页浏览器在线程睡眠方面是否有任何标准?

鉴于以下jsFiddle,这是一个简单的递增计数器 http://jsfiddle.net/C93ms/6/ ….如果我使用移动设备(智能手机或平板电脑为了争论)访问上面的url,柜台开始递增,如您所期望的那样,如果有JavaScript支持,那么看起来,如果我按“首页“button,或单击电源button一次以closures屏幕(但保持电话开机),脚本将停止运行,计数器停止递增。 这个我期望会发生,我很欣赏为什么在移动设备上保留电池的使用寿命非常重要,所以UI线程睡眠或类似是有道理的。 一旦你重新浏览器,计数器继续递增。 在现实世界中,使用JavaScript来确定超时期限的网站在不使用期限的情况下不会超时,我假设。 我也假设这会因设备,固件,软件而有所不同 – 我试图弄清楚的是,在移动开发框架中是否存在标准方法或默认行为 ,以及在移动开发框架中是否存在任何forms的一致性设备的行为。 我不完全肯定我在这里提出了一个很好的问题 ,但是我一直在努力寻找来自SO的100%相关信息,或者我不太清楚search时需要提出的问题。 谢谢

在WKWebView中调用本地代码的JavaScript函数

在iOS 8中使用WKWebView,我如何从本地运行JavaScript函数,或者从本地运行到JavaScript? 似乎没有类似于UIWebView的stringByEvaluatingJavaScriptFromString: 。 (我可以在configuration.userContentController对象上使用- addScriptMessageHandler:name:来允许从JS到本地的通信,但我正在寻找相反的方向。)

以编程方式在iOS设备上的input字段中select文本(移动Safari)

如何以编程方式selectiOS设备上input字段的文本,例如运行移动Safari的iPhone,iPad? 通常,在<input … />元素上调用.select()函数就足够了,但这在这些设备上不起作用。 光标停留在现有条目的末尾,不做任何select。

使用JavaScript检测小于5的iOS版本

这与位置的“修复”有关:在旧版本的iOS中修复。 但是,如果安装了iOS5或更高版本,修补程序会中断该页面。 我知道如何检测iOS 5: navigator.userAgent.match(/OS 5_\d like Mac OS X/i) 5 navigator.userAgent.match(/OS 5_\d like Mac OS X/i)但它不会为iOS6时,它最终来到,甚至iOS 5.0.1,只有一个2数字版本。 所以这就是我所拥有的。 $(document).bind("scroll", function() { if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i)) || (navigator.userAgent.match(/iPad/i))) { if (navigator.userAgent.match(/OS 5_\d like Mac OS X/i)) { } else { changeFooterPosition(); } });

以编程方式专注于移动Safari上的下一个input字段

行中有几个input字段,就像填字游戏答案行一样: 每个广场都有自己的input栏。 其中的原因是有时候一个正方形可以预先填充。 现在,在桌面浏览器中,只要input了字符,光标就跳转到下一个input字段。 这真的很好使用像这样的东西: $(this).next('input').focus(); 但移动Safari(我们在iOS上testing)的问题是,我不知道如何以编程方式自动“跳转”到下一个input字段。 用户可以通过“下一步”button来做到这一点,但有没有办法自动做到这一点? 我知道focus()触发器对ios有一些限制,但我也看到了一些使用合​​成点击的解决方法。

使用UIWebView从HTML代码调用目标c代码中的方法

我的iOS应用程序中有.html文件。 HTML文件几乎没有使用onClick方法的div块。 当我点击这些块时,我会在Web视图中调用一些JavaScript代码,但是我也需要在源代码中了解这些事件。 例如,当我点击web元素和onClick被调用时,我需要在代码中调用一些方法,例如- (void)didTouchedWebElementWithId 我可以做这个东西吗? 谢谢。

强制链接打开移动Safari浏览器从一个Web应用程序与JavaScript

在iOS Web应用程序中调用window.open()时,将在Web应用程序中打开页面,而不是移动Safari。 如何强制网页在移动Safari浏览器打开? 注意:使用直接的<a href>链接不是一个选项。

从资源加载JavaScript到UIWebView

我需要从我的应用程序资源文件夹加载JavaScript文件。 截至目前,它确实从资源中读取图像,但是由于某种原因,它并没有阅读javascripts。 我已经能够呈现html文档引用这些JavaScript如果HTML文件本身写入到资源,但我想通过设置一个UIWebView的HTML,因此它可以dynamic呈现HTML / JS。 这是我在做什么: NSString * html = @"<!DOCTYPE html><html><head><title>MathJax</title></head><body><script type=\"text/x-mathjax-config\">MathJax.Hub.Config({tex2jax: {inlineMath: [[\"$\",\"$\"],[\"\\(\",\"\\)\"]]}});</script><script type=\"text/javascript\" src=\"/MathJax/MathJax.js\"></script>$$\\int_x^yf(x) dx$$<img src=\"coffee.png\"></body></html>"; NSString * path = [[NSBundle mainBundle] resourcePath]; path = [path stringByReplacingOccurrencesOfString:@"/" withString:@"//"]; path = [path stringByReplacingOccurrencesOfString:@" " withString:@"%20"]; NSString * resourcesPath = [[NSString alloc] initWithFormat:@"file://%@/", path]; [webview loadHTMLString:html baseURL:[NSURL URLWithString:resourcesPath]]; 现在,如果我更改基本url到我的服务器也有所需的文件,它确实加载正确。 不需要互联网连接将是伟大的。 任何帮助表示赞赏! ;) 我发现这对获取图像显示很有用: iPhone […]

window.onbeforeunload不工作在iPad上?

有谁知道,如果在iPad上支持onbeforeunload事件和/或如果有不同的方式来使用它? 我已经尝试了几乎所有的东西,而且似乎从未在iPad(Safari浏览器)上触发onbeforeunload事件。 具体来说,这是我试过的: window.onbeforeunload = function(event) { event.returnValue = 'test'; } window.onbeforeunload = function(event) { return 'test'; } (以上两者一起) window.onbeforeunload = function(event) { alert('test')'; } (所有上面的函数,但在<body onbeforeunload="…"> 所有这些工作在PC上的FF和Safari上,而不是在iPad上。 另外,我刚刚加载页面之后完成了以下操作: alert('onbeforeunload' in window); alert(typeof window.onbeforeunload); alert(window.onbeforeunload); 分别的结果是: true object null 所以,浏览器确实有这个属性,但由于某种原因,它并没有被解雇。 我尝试从页面导航的方法是单击后退和前进button,在顶部栏中进行谷歌search,更改地址栏中的位置,然后单击书签。 有谁知道发生了什么? 我非常感谢任何input。 谢谢