我们有一个iPad应用程序可以在我们的旧iPad上运行。我们打开外部链接使用varx=window.open(url)在一天结束时,当用户关闭应用程序的这一部分时,我们遍历它打开的所有窗口并对每个窗口执行x.close(),一切正常。在装有IOS5和可爱标签的新iPad上进行测试,打开新窗口(尽管现在它们作为选项卡打开)很好,但是执行x.close()似乎不一定关闭x,它可能会关闭窗口y或z。执行x.focus()或y.focus()工作得很好,正确的选项卡成为焦点,但关闭似乎只是选择它想要的任何选项卡。这是一个错误还是我做错了什么?示例程序://TheopenWindowarrayw
从AppleWWDC中,我们了解到iOSSafari5具有选项卡,以及新的阅读器和阅读列表功能。对于网络开发人员来说,这些都不是特别有用的信息。与CSS(位置固定?)、Javascript(网络worker?)和DOM(手势事件?)相关的新功能是什么? 最佳答案 看来我们确实得到了position:fixed和overflow:scroll,参见http://functionsource.com/post/ios5-positionfixed-overlayscroll还有WebWorkers,以及各种输入标签增强功能。JSSpee
此问题不会出现在iOS或Chrome上,因此它不是与Webkit相关的问题。它似乎特定于OSX10.8.2上的最新Safari6.0.2(并且未被Safari6.0.3附带的10.8.3预览版本12D65修复)。我将很快在带有Safari6.0.2的Lion10.7.5上进行测试,还将在预览版12D68上进行测试。http://jsfiddle.net/zrr2b/这是一个使问题非常明显的fiddle。如果您有一台运行ML的Mac,您应该会看到Chrome和Safari之间的显着差异,当您移动鼠标时,Safari会闪烁很多。基本上,问题是Safari会间歇性地绘制从JS为单个帧设置的目
我正在尝试构建一个Safari扩展,当用户点击Command+B时,它将显示弹出窗口。使用下面的代码它可以工作,但总是在不同的窗口而不是当前窗口/选项卡上显示弹出窗口。我希望它在当前窗口上显示弹出窗口,而不是切换到另一个窗口并在那里打开弹出窗口。如果只有一个Safari窗口打开,它可以完美运行,但当打开多个窗口时开始出现问题。有什么想法吗?全局页面文件:safari.application.addEventListener('message',function(e){if(e.name=='ShowPopover'){safari.extension.toolbarItems[0].s
我在Safari扩展中遇到以下问题。我要求用户提供他们的网络服务用户名/密码,并发送一个快速请求以验证凭据是否正确。如果不是,该服务将以我认为应该的方式响应401。问题是Safari似乎在我的javascript代码可以处理它之前拦截了这个响应,显示灰色登录框而不是让我处理错误。我能做些什么吗?我正在使用js库进行调用,但它在功能上等同于以下jQuery。$.ajax({type:"GET",url:url,username:username,password:password,success:function(){/*handlesuccess*/},error:function()
以下代码片段在Firefox中运行时会在Chrome(和Safari)中产生错误。我希望在javascript控制台中显示2个数字,但在Chrome中我只得到第一个,然后是UncaughtTypeError:Illegalinvocation//agenericpromisethatreturnarandomfloatvarmakePromise=function(){return$.Deferred().resolve(Math.random());}//ThisworksinallbrowsersmakePromise().then(function(d){console.log(
我试图在卸载窗口时(即刷新页面时)向数据库发送一些请求。出于某种原因,仅在Safari上,客户端代码得到执行,但对服务器的请求永远不会通过。当我在调试器中手动单步执行代码时,服务器确实收到了请求并对其进行了很好的处理。有人知道为什么会这样吗?window.onbeforeunload=function(){console.log("insideonbeforeunload");varrequestParam=newa.ListRequest();requestParam.setAction('set_delete');varcallback=function(isSuccess,res
我正在编写一个基于Javascript的上传进度表。我想使用标准的多部分提交方法(而不是在iframe中提交文件)。在提交期间,我发送返回上传完成百分比的ajax请求,然后相应地更新进度表。这一切在FireFox和IE中都能顺利运行。但是,Safari似乎会在提交主表单后阻止完成ajax请求。在调试器中,我可以看到请求header,但似乎从未收到响应。任何人都知道这一点,或者如何解决它? 最佳答案 是的,这就是Safari和任何基于WebKit的浏览器(即GoogleChrome)的行为方式。我最近也在文件上传进度表上遇到了这个问题
在MacOS10.9上的Safari中使用ctrl+click触发上下文菜单事件(Context.JS)时,也会触发mousedown/up/click事件。这会导致菜单关闭。这些事件似乎彼此异步发生,因此stopPropagation不起作用,这似乎也会导致间歇性行为,有时没问题,有时则不然。有没有其他人遇到过这个问题,如果你遇到过,你是如何解决/解决它的?不幸的是,我无法向大众发布代码,但我希望它听起来很熟悉。fiddle:http://jsfiddle.net/gnh2tuyj/ 最佳答案 您可以使用ctrlKeyproper
我知道Chrome让您使用下拉菜单选择控制台执行的上下文,Firebug让您cd()进入iframe。我不知道如何更改Safari控制台中的上下文。有谁知道如何做到这一点? 最佳答案 与chrome和firefox不同,Safari没有真正支持此功能,唯一的选择似乎是从控制台访问窗口对象。正如您正确指出的那样,这将触发跨域策略问题,但是如果您在mac上运行(由于某些原因这在windows上不起作用)您可以使用open-a'/Applications/Safari.app'--args--disable-web-security绕过这