Questions tagged «safari»

Safari是Apple的网络浏览器,是macOS和iOS上的默认浏览器。

5
NodeJS / express:缓存和304状态代码
重新加载使用express创建的网站时,使用Safari(而不是使用Chrome)会显示空白页,因为NodeJS服务器向我发送了304状态代码。 如何解决呢? 当然,这也可能只是Safari的问题,但实际上它可以在所有其他网站上正常工作,因此它也必须是我的NodeJS服务器上的问题。 为了生成页面,我将Jade与结合使用res.render。 更新:似乎发生此问题,因为Safari'cache-control': 'max-age=0'在重新加载时发送。 更新2:我现在有一个解决方法,但是有更好的解决方案吗?解决方法: app.get('/:language(' + content.languageSelector + ')/:page', function (req, res) { // Disable caching for content files res.header("Cache-Control", "no-cache, no-store, must-revalidate"); res.header("Pragma", "no-cache"); res.header("Expires", 0); // rendering stuff here… } 更新3: 因此,完整的代码部分当前为: app.get('/:language(' + content.languageSelector + ')/:page', pageHandle); function pageHandle (req, res) { var language …

10
消除移动Safari中点击事件的300ms延迟
我了解到,从单击链接/按钮到事件触发之间,移动Safari的点击事件会延迟300毫秒。延迟的原因是等待用户是否打算双击,但是从UX的角度来看,等待300ms通常是不希望的。 消除这种300毫秒延迟的一种解决方案是使用jQuery Mobile“点击”处理。不幸的是,如果我只需要touchend以正确的方式应用一两行代码,我就不会熟悉这个框架,也不想加载一些大型框架。 像许多网站一样,我的网站也有许多如下点击事件: $("button.submitBtn").on('click', function (e) { $.ajaxSubmit({... //ajax form submisssion }); $("a.ajax").on('click', function (e) { $.ajax({... //ajax page loading }); $("button.modal").on('click', function (e) { //show/hide modal dialog }); 而我想做的就是使用一个简单的代码片段消除所有这些单击事件的300ms延迟: $("a, button").on('tap', function (e) { $(this).trigger('click'); e.preventDefault(); }); 这是一个好主意吗?



12
jQuery .load()调用未在加载的HTML文件中执行JavaScript
这似乎仅与Safari有关。我在Mac上尝试过4,在Windows上尝试过3,但仍然没有运气。 我正在尝试加载外部HTML文件,并执行嵌入的JavaScript。 我要使用的代码是这样的: $("#myBtn").click(function() { $("#myDiv").load("trackingCode.html"); }); trackingCode.html 看起来像这样(现在很简单,但是如果我能正常工作的话,将会扩展一次): <html> <head> <title>Tracking HTML File</title> <script language="javascript" type="text/javascript"> alert("outside the jQuery ready"); $(function() { alert("inside the jQuery ready"); }); </script> </head> <body> </body> </html> 我在IE(6&7)和Firefox(2&3)中都看到了警报消息。但是,我无法在Safari中看到消息(我需要关注的最后一个浏览器-项目要求-请不要大惊小怪)。 关于Safari为什么忽略trackingCode.html文件中的JavaScript的任何想法? 最终,我希望能够将JavaScript对象传递到此trackingCode.html文件以在jQuery ready调用中使用,但是我想确保在所有浏览器中都可以做到这一点。
83 jquery  ajax  safari 

2
iPhone浏览器的密码首字母字段默认为大写
我正在为Webapp的移动版本编写登录页面,并且有一个简单的HTML密码字段,如下所示: <input id="password" type="password" /> 唯一的问题是,iPhone Safari浏览器默认情况下将输入的首字母大写,这使我的用户感到困惑,因为密码区分大小写,而且他们并不总是意识到这种情况。 除非用户另外指定,否则是否有人知道一种方法,标记或其他方式来阻止这种情况的发生并强迫iPhone输入小写?还是这仅仅是平台的不可更改的功能?


8
无法在iPhone / iPod touch的Safari iOS 7中隐藏导航栏
我不认为有任何解决方案可以使用javascript / css / html以编程方式隐藏栏,但是让我尝试描述一个问题。我们是移动游戏开发人员的团队,我们已经开发了一年的游戏。 在发布iOS 7之后,我们遇到了无法隐藏导航栏的问题。一旦用户点击Safari浏览器的上部或下部,导航栏就会再次出现并隐藏游戏的所有控件。 到目前为止,我们发现的唯一解决方案是强制用户执行以下操作: 旋转装置 滚动页面 将应用程序添加到主屏幕 这些替代方法都不可接受。看起来苹果公司已经意识到了这个问题,但是一直忽略它。他们已经关闭了一个已报告的错误,其与错误#14076889重复。 我相信我们不是唯一遇到同样问题的团队。有人知道解决方案吗?
81 javascript  ios  html  ios7  safari 

5
使用JavaScript在Safari中触发键盘事件
我正在尝试使用JavaScript在Safari中模拟键盘事件。 我已经试过了: var event = document.createEvent("KeyboardEvent"); event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0); ...还有这个: var event = document.createEvent("UIEvents"); event.initUIEvent("keypress", true, true, window, 1); event.keyCode = 115; 但是,在尝试了两种方法之后,我遇到了相同的问题:在执行代码之后,将事件对象的keyCode/which属性设置为0,而不是115。 有谁知道如何在Safari中可靠地创建和调度键盘事件?(如果可能,我宁愿使用普通JavaScript来实现。)

1
为什么Safari页面破坏了iOS渲染?
我知道标题不是解释性的,而是故事:我正在开发一种浏览器游戏,主要使用JavaScript和Mapbox库。 一切在台式机,Android和iOS上都可以正常运行,但是在iOS上出现了一个问题:让游戏运行了几分钟后,手机突然开始出现图形伪像,并显示了大部分乱码。 这是手机开始时的一些照片: 我的问题是:代码中到底是什么原因引起的?内存泄漏?(LE:事实证明实际上是内存泄漏) 真正的问题是:为什么只通过浏览网页就可以几乎将整个手机变成砖块?Safari是否应该停止此操作,或者至少是iOS? 这不是此特定设备的问题,因为此问题可以在其他iPhone设备上重现。(我不太确定不同的iOS版本)。 如何重现错误: 打开游戏(在Safari内部)。 让它运行3-4分钟。 向下滑动通知中心,一切都会变得疯狂。 我添加了一个YouTube视频,该视频显示了如何重现错误(在iPhone 5C上)。 该问题似乎首先出现在通知中心中(如果您从顶部向下滑动菜单)。 就目前而言,此问题似乎仅在iPhone 5CiOS 9.2.1(13D15)上发生。它也发生在新的iOS 9.3版本上。 为了解决此问题,我必须: 关闭Safari应用程序(在其中打开了游戏选项卡)。 锁定手机。解锁后,一切恢复正常。 有关游戏本身的一些详细信息: 游戏会显示一个Mapbox地图及其上方的一些单位(标记)。 Node.js服务器以1节拍/秒的速度运行,并且在每个节拍之后,更新的游戏状态通过Socket.io发送到浏览器。 每次浏览器收到游戏状态时,都会相应地更新标记。 *如果您放大或缩小标记或选择标记,游戏可能还会更新标记。 EDIT2: 发现内存泄漏(按预期方式)。修复此泄漏(检查undefined_icon)之后,该问题不再发生。这意味着,沿着这些路线的某个地方会触发Safari / iOS错误。 对于每个群集的单位(在MarkerCluster中被隐藏并与其他单位分组),这就是每个刻度线的确切名称: var $icon = $(marker._icon); // marker._icon is undefined because of the clustering $icon.html(''); $icon.append($('<img class="markerIcon" src="' + options.iconUrl + '" …

2
使用Chrome DevTools调试iOS 6 + 7 Mobile Safari
iOS 6内置了对远程调试的支持(1分钟截屏)。它与新的Safari Web Inspector配合使用时看起来不错,它似乎是WebKit Inspector的1年历史。它缺少一些功能,例如JS编辑和WebSocket框架检查。 Safari的Web检查器确实使用WebKit远程调试协议。但是,Safari并未将TCP / HTTP用作传输层,因此使其与Chrome不兼容。 苹果公司员工蒂莫西·哈彻(Timothy Hatcher,又名氙气)说 Safari在传输层使用什么功能? 我可以从这个神秘的传输层到HTTP建立代理,以使其与Chrome DevTools一起使用吗?


3
如何使用Safari浏览器检查元素
我正在开发网站并创建应用程序。我想知道如何通过Safari等网络浏览器检查元素。 在普通的Chrome,Firefox,Explorer或任何其他浏览器中,我们将右键单击鼠标按钮或按功能键F12以查看Inspect Element。但是在野生动物园浏览器中却没有发生。 分享你的意见!


4
Safari开发人员工具:如何在导航时保留控制台日志?
使用Safari Web Inspector读取JavaScript控制台输出时,导航时会重置日志,即从页面index.html转到mail.html会清除控制台输出。在Chrome开发者工具中,我可以通过右键单击控制台空间并选择“导航时保留日志”来轻松保留日志。使用此选项,在我手动清除输出之前,控制台日志输出将保持不变,从而简化了刷新或重定向到另一个页面的JavaScript调试过程。 Safari Web检查器中是否有类似功能?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.