我正在尝试使用JavaScript在Safari中模拟键盘事件.
我试过这个:
var event = document.createEvent("KeyboardEvent");
event.initKeyboardEvent("keypress", true, true, null, false, false, false, false, 115, 0);
Run Code Online (Sandbox Code Playgroud)
......还有这个:
var event = document.createEvent("UIEvents");
event.initUIEvent("keypress", true, true, window, 1);
event.keyCode = 115;
Run Code Online (Sandbox Code Playgroud)
但是,在尝试这两种方法之后,我遇到了同样的问题:在执行代码之后,事件对象的keyCode/ whichproperties设置为0,而不是115.
有谁知道如何在Safari中可靠地创建和发送键盘事件?(如果可能的话,我宁愿用纯JavaScript实现它.)
我有这样的HTML代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title></title>
</head>
<body>
<table style="width:100%;">
<tr>
<td>
<table style="width:100%; max-width:1000px; background:#000099;">
<tr>
<td>
001
</td>
</tr>
</table>
</td>
</tr>
</table>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
问题是Chrome和Safari无视"max-width:1000px"
我的朋友发现我们可以通过添加"display:block"内部表来阻止它,并且它在某种程度上起作用.
所以,我想知道的是 - 有没有其他方法来解决这个问题,为什么会发生这种情况?
当使用Safari网络督察阅读JavaScript控制台输出,日志是在导航即从页面会复位的index.html到mail.html清除控制台输出.在Chrome开发者工具中,我可以通过右键单击控制台空间并选择" 保留导航日志"轻松保留日志.使用此选项,控制台日志输出保持不变,直到我手动清除输出,简化了调试刷新或重定向到另一个页面的JavaScript的过程.
Safari Web Inspector中是否有类似的功能?
我们看到iOS 7中Safari的高度为100%的Web应用程序存在问题.似乎window.innerHeight(672px)与window.outerHeight(692px)不匹配,但仅在横向模式下.最终发生的事情是,在身体高度为100%的应用程序中,您可以获得20px的额外空间.这意味着当用户在我们的应用上滑动时,导航元素会被拉到浏览器镶边后面.这也意味着位于屏幕底部的任何绝对定位的元素最终都会关闭20px.
这个问题也在这里提出了这个问题: IOS 7 - css - html height - 100%= 692px
在这个模棱两可的截图中可以看到:

我们要做的就是解决这个问题,以便在Apple修复bug之前,我们不必担心它.
这样做的一种方法是绝对仅在iOS 7中定位主体,但这几乎将额外的20px放在页面的顶部而不是底部:
body {
position: absolute;
bottom: 0;
height: 672px !important;
}
Run Code Online (Sandbox Code Playgroud)
任何帮助强迫outerHeight匹配innerHeight,或者黑客攻击以便我们的用户看不到这个问题的任何帮助都将非常感激.
根据Apple iOS的口头禅,应该可以通过用两根手指拖动来滚动IFRAME的内容.不幸的是,在iPad上运行最新版本的iOS我还没有找到一个带有IFRAME的网站,它使用这种方法滚动 - 没有滚动条出现.
有谁知道用户应该如何使用移动版Safari滚动IFRAME的内容?
在Safari 7中,带有清单的主html文件在脱机时可加载,但不会加载任何外部资源,即使它们在清单文件中列为缓存.Safari的资源窗格列出了应用程序缓存中的文件,但不会加载它们.我尝试过一个非常简单的测试,检查清单文件的MIME类型,重命名清单文件,并尝试其他演示.这是一个在Chrome上正常运行的示例,但在Safari上,它不会在离线时加载粘性图片:http://htmlfive.appspot.com/static/stickies.html
这与AppCache在Safari,firefox中行为不端所描述的问题相同,但我认为这个问题并没有使问题变得清晰,我想提出一个具体演示的问题.是否有解决办法,或者Safari 7是否完全不支持主html文件之外的应用程序缓存?谢谢!
好的,我理解这些消息意味着什么,但我真的不确定是什么导致了它.顺便说一下,我在Mac OS X上使用Safari和Web Inspector.
我的文档头中有以下内容:
<script src="http://local.url/a/js/jquery.js" type="text/javascript"></script>
<script src="http://local.url/a/js/jquery.inplace.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)
jquery.js处理正常,但另一个文件导致警告.似乎这个文件中的javascript永远不会被执行.
该文件正在通过mod_deflate,因此它是gzip编码,但另一个文件也是如此.
有没有人知道是什么导致了这个问题,或者如何解决它?
干嘛,加兹.
当我点击"搜索表单"文本框字段时,修复了标题上的位置中断.它只是从页面顶部分离(当它固定在那里),并在虚拟键盘打开时开始浮动页面的中间位置.
正常:

破碎:

在单击后退按钮时遇到safari加载旧YouTube视频的问题.我已经尝试将onunload =""(这里提到防止Safari 5中的后台按钮上的缓存)添加到body标签,但在这种情况下它不起作用.
有没有办法防止某个页面上的缓存加载safari?
safari ×10
javascript ×5
caching ×2
console ×2
html ×2
ipad ×2
apache ×1
back-button ×1
css ×1
debugging ×1
dom-events ×1
iframe ×1
ios7 ×1
mime-types ×1
scaling ×1
scroll ×1
webkit ×1