我发现了一个影响Safari 6.1和7.0的错误(在Safari 5.1和6.0中没问题)。我已经向Apple报告过了。
测试用例在这里:http://tremby.net/dump/iframe-safari/
代码非常简单。父页面只有一个iframe,iframe有一个mousewheel
事件的监听器,用于触发警报。 iframe的内容小于iframe本身(稍后会详细介绍)。
如果您通过单击位置栏并按Enter来刷新此页面,则iframe中的鼠标滚轮事件将不会触发(您看不到警报)。但如果你用刷新按钮刷新它们。
我需要的是解决方法。
我们已经发现,iframe的内容会溢出iframe的界限。鼠标滚轮事件现在触发,但滚动条和内容移动是不可接受的。 (别担心为什么选择使用iframe - 这对我来说不合适。)
有什么想法吗?
答案 0 :(得分:6)
令人难以置信的是, 功能 仍然存在于Safari 8中。
我在这里找到了很好的解决方法:https://bugs.webkit.org/show_bug.cgi?id=124139
只需将onmousewheel =“”属性添加到iframe标记。
<iframe src="..." onmousewheel=""></iframe>
答案 1 :(得分:0)
我找到了一个在我的用例中可以接受的解决方法。
将以下CSS添加到iframe内容会使事件显示出来。
html, body {
width: 100%;
padding: 0;
margin: 0;
}
body {
padding-right: 1px;
overflow-x: hidden;
}
由于默认使用内容框大小调整模型且宽度为100%,因此没有显示滚动条,这意味着填充的像素溢出右边缘,这是隐藏的。