草庐IT

safari-push-notifications

全部标签

javascript - 在 iPhone Safari 虚拟键盘上打字时滚动到所选元素

我正在构建一个iPhone网络应用程序,并且有一个带有输入字段的页面。我希望该字段在出现时向上滚动到虚拟键盘的正上方。我尝试在输入焦点事件上放置一个scrollTo(x,y)(即在键盘出现之前),但是当我开始输入时,页面再次向上滚动(大概是基于默认的移动safari行为)。我还尝试设置按键事件处理程序,但阻止这些事件的传播只是禁用了键盘,尽管它确实阻止了滚动。当虚拟键盘出现时,有什么方法可以强制页面位于特定位置(输入字段刚好在键盘上方),并且当我恢复输入时它不移动? 最佳答案 好吧,这可能是您见过的最糟糕的黑客攻击,但它无可匹敌。你

javascript - 元素仅在 Safari 10 中消失(9 没问题),当我更改任何 css 时显示

我在React网络应用程序中有一个包含标题div的引导列,这是另一个引导行。容器有CSS:height:calc(100vh-14em);overflow-y:hidden;padding-left:0;padding-right:0;display:table;border-left:thinsolid#e6e6e6;标题行有css:border:thinsolid#e6e6e6;border-left:2pxsolid#e0e0e0;height:6em;margin-left:0;margin-right:0;display:table-caption;这在除Safari10.1

javascript - iPhone Mobile Safari 3 上的 getBoundingClientRect 等效于什么?

iPhoneMobileSafari似乎缺少element.getBoundingClientRect。iPhoneMobileSafari上的等效方法是什么?iPad上有这种方法。 最佳答案 编辑1:此代码(webkitConvertPointFromNodeToPage)仅适用于非常旧和过时的手机...参见thesecomments.编辑2:我不建议您使用此代码...我记得更改它以处理带有触摸缩放的IE10的一些问题。我会尽量记住用修复更新代码。是:我认为以下适用于IE6+、FF3+、Safari2+(桌面和移动)、Chrome

javascript - Safari 中的默认函数参数值不起作用

我正在使用angularjs,并且仅在safari中对null赋值有问题。它在chrome和firefox中工作。$scope.submit=function(id=null){}我收到这个错误SyntaxError:Expectedtoken')'当我删除null时,它就可以正常工作。我不知道为什么!$scope.submit=function(id){}请帮助我理解为什么这种情况只发生在safari上? 最佳答案 DefaultparametersSafari尚不支持ES2015。请查看compatibilitytable.目前

javascript - 在 *iPad 上的 Safari 上按 "back"按钮时未收到“pageshow””

我有以下处理程序:$(window).bind('pageshow',function(){alert("backtopage");});当我离开页面(通过按链接)并返回页面(通过按“返回”按钮)时,alert()不被调用(iPad2、iOS5.1)。请问我做错了什么?我需要绑定(bind)到任何其他事件吗?PS:有趣的是,当离开页面时,pagehide被正确接收。 最佳答案 您可以检查pageshow事件的persisted属性。它在初始页面加载时设置为false。当页面从缓存中加载时,它被设置为true。window.onpag

javascript - 你如何在 Safari 中的 <canvas> 标签上绘制文本

我一直在尝试使用用于绘制简单图表的标签,到目前为止,它非常容易使用。我想到一个问题。我不知道如何在上绘制文本在Safari中。在Firefox3.0中,我可以这样做:Chart.prototype.drawTextCentered=function(context,text,x,y,font,color){if(context.mozDrawText){context.save();context.fillStyle=color;context.mozTextStyle=font;x-=0.5*context.mozMeasureText(text);context.translate

javascript - 添加到数组时使用 push 方法还是 .length?

这样做的缺点是什么:varmyArray=[];myArray[myArray.length]=val1;myArray[myArray.length]=val2;代替:varmyArray=[];myArray.push(val1);myArray.push(val2);我确信push方法更“可接受”,但在功能上有什么不同吗? 最佳答案 推送速度更快,几乎快300%。证明:http://jsperf.com/push-vs-length-test 关于javascript-添加到数组时

javascript - 使用 Javascript 在 iPhone safari 上启用/禁用缩放?

我有1个页面,其中有2个DIV元素,这些元素根据用户使用javascript单击操作按钮显示/隐藏,我想在操作按钮单击时切换缩放。我尝试使用下面的javascript,它正在更改视口(viewport)元但没有效果。有什么建议吗?varViewPortAllowZoom='width=device-width;';varViewPortNoZoom='width=device-width;initial-scale=1.0;maximum-scale=1.0;minimum-scale=1.0;user-scalable=no;';functionAllowZoom(flag){if(

javascript - Safari 调试器是否有键盘快捷键?

Firebug和Eclipse都允许我使用功能键单步执行代码。Safari是否具有同等功能? 最佳答案 TheScriptsDebuggerwasupdatedtosupportsomepopularkeyboardshortcuts:继续—F8或Command-/在Mac或Control-/在其他平台上。越过-F10或Command-'在Mac上或Control-'在其他平台上。StepInto—F11或Command-;在Mac上或Control-;在其他平台上。跳出—Shift-F11或Shift-Command-;在Mac上

javascript - Safari 不像其他浏览器那样对对象数组进行排序

这个问题在这里已经有了答案:Whywon'tSafari5sortanarrayofobjects?(1个回答)关闭8年前。varmyArray=[{date:"2013.03.01"},{date:"2013.03.08"},{date:"2013.03.19"}];我试过:function(a,b){returnb.date>a.date;}和function(a,b){returnb.date-a.date;}Chrome和Firefox中的console.log为我提供了所需的输出:"2013.03.19","2013.03.08","2013.03.01"但是Safari给出