覆盖a<;时图形错误的解决方法;部门>;超过一个<;iframe>;在狩猎中?

覆盖a<;时图形错误的解决方法;部门>;超过一个<;iframe>;在狩猎中?,iframe,safari,rendering,Iframe,Safari,Rendering,我在Safari中遇到了一个非常奇怪的绘图错误,我想看看是否有什么解决方法可以 我目前正在IFrame的顶部显示一个(绝对定位,高z索引),该IFrame显示来自其他站点的内容。仅用于上下文,它是我们在其他站点上显示的工具栏 这在所有浏览器中都能很好地工作,但在Safari中,当IFrame显示一些站点时,用户在IFrame中滚动页面时,工具栏的绘图就会出错 这是一个非常简约的POC,再现了这个问题: <html> <head> </head> <bod

我在Safari中遇到了一个非常奇怪的绘图错误,我想看看是否有什么解决方法可以

我目前正在IFrame的顶部显示一个(绝对定位,高z索引),该IFrame显示来自其他站点的内容。仅用于上下文,它是我们在其他站点上显示的工具栏

这在所有浏览器中都能很好地工作,但在Safari中,当IFrame显示一些站点时,用户在IFrame中滚动页面时,工具栏的绘图就会出错

这是一个非常简约的POC,再现了这个问题:

<html>
<head>
</head>
<body>

<div id="mainContainer" style="position: absolute; top: 0; left:0; height: 500px; width: 500px; border: 2px solid red;">
    <div id="floatingToolbar" style="position: absolute; top: 20px; right: 20px; height: 40px; width: 300px; background-color: blue; color: red; z-index:200;">
        Toolbar!
    </div>
    <iframe id="theIFrame" src="http://www.overstock.com/Clothing-Shoes/Skynyrd-Mens-Rock-Roll-Freebird-Lyric-T-shirt/3023049/product.html?sec_iid=33972" style="position: absolute; top: 0; left:0; height: 500px; width: 500px; border: 2px solid red;">
    </iframe>
</div>

</body>
</html>

工具栏!

如果您将其保存到硬盘,并使用Firefox打开,您将获得以下信息:


(来源:)


如果您在Safari中打开它,并在IFrame中疯狂地上下滚动,它将如下所示:


(来源:)


现在,这只发生在狩猎中。Chrome可以正常工作。 它发生在Safari Windows和Mac中。我正在使用Safari Windows 3.2.1(525.27.1)进行测试,但我在其他版本中也看到过这种情况

为了让这更神秘,只有当我在IFrame中显示一些站点时才会发生这种情况。例如,如果显示www.google.com或www.stackoverflow.com,则工具栏工作正常。但是,www.overstock.com或www.amazon.com中的项目运行良好。而且,不仅仅是少数几个网站给了我这个问题。很多。我还没能找到一些特别的东西来区分“坏”网站和“好”网站,但我还没有深入研究。也许是DOCTYPE,或者别的什么。似乎有一条规则(尽管它的确很软)是“复杂”或“重”的网站倾向于触发它,而“轻”的网站则不会

我能做些什么来解决这个问题


谢谢

在iframe顶部进行渲染时,我预计会出现意外情况,类似于在flash视频上放置div时。它可以工作,有时也可以。但是flash或iframe中的滚动或移动可能会触发一些渲染问题


是否有可能使用与iframe不同的解决方案?使用像cURL这样的库从另一个页面获取数据就足够了吗?

在iframe顶部进行渲染时,我预计会出现意外情况,就像在flash视频上放置div一样。它可以工作,有时也可以。但是flash或iframe中的滚动或移动可能会触发一些渲染问题


是否有可能使用与iframe不同的解决方案?使用像cURL这样的库从其他页面获取数据就足够了吗?

谢谢您的回复!不,我们不能没有IFrame,我们想让用户使用我们内部的其他站点。通过cURL代理它将破坏大多数现代站点,因为它们中的许多站点的很多功能都依赖于Javascript。我同意在IFrame上绘图是“奇怪的”。当我第一次尝试z-index时,我甚至没有想到它会起作用,但事实上,所有其他浏览器的表现都很完美,即使是蹩脚的IE6……好吧,我想这取决于有多少用户使用Safari,而不是你希望人们使用这个功能有多糟糕。cURL仍然可以与JS一起使用。。循环遍历外部引用并使其成为绝对路径。当然,这种方法也不是一个好方法。只是一个建议。是的,这是一场即将发生的安全灾难…:-)另外,通过外部引用进行循环是一个理想的word解决方案。很多网站都通过奇怪的响应动态地包含JS。写、添加元素等等。但最重要的是,这是一个我不愿意尝试自己关闭的大安全漏洞(就像Facebook对他们的FBJ所做的那样)不是响应。ASP的写部分吗?cURL只能获取输出到浏览器的内容。感谢您的回复!不,我们不能没有IFrame,我们想让用户使用我们内部的其他站点。通过cURL代理它将破坏大多数现代站点,因为它们中的许多站点的很多功能都依赖于Javascript。我同意在IFrame上绘图是“奇怪的”。当我第一次尝试z-index时,我甚至没有想到它会起作用,但事实上,所有其他浏览器的表现都很完美,即使是蹩脚的IE6……好吧,我想这取决于有多少用户使用Safari,而不是你希望人们使用这个功能有多糟糕。cURL仍然可以与JS一起使用。。循环遍历外部引用并使其成为绝对路径。当然,这种方法也不是一个好方法。只是一个建议。是的,这是一场即将发生的安全灾难…:-)另外,通过外部引用进行循环是一个理想的word解决方案。很多网站都通过奇怪的响应动态地包含JS。写、添加元素等等。但最重要的是,这是一个我不愿意尝试自己关闭的大安全漏洞(就像Facebook对他们的FBJ所做的那样)不是响应。ASP的写部分吗?cURL只能获取输出到浏览器的内容。哦!有趣!它已经被报告为一个bug了:-(记录在案,我在Safari 4 Beta中没有看到这个。哦!有趣!它已经被报告为bug了:-(记录在案,我在Safari 4 Beta中没有看到这个)。