【问题标题】:Drag and drop cross domains, iframes, browsers windows拖放跨域、iframe、浏览器窗口
【发布时间】:2013-06-06 17:50:08
【问题描述】:

感谢stackoverflow,我解决了很多我的javascript问题,但现在我停在了这一点上,没有希望。很难描述,有清晰的视频显示我的拖放跨域 iframe 的问题。

http://www.youtube.com/watch?v=v65mO27h75E

  • Iceweasel(和 FF、Opera)的第一部分 = iframe d&d 工作正常。
  • Chromium(和 Chrome)的第二部分 = iframe d&d 不起作用。

还有指向示例 iframe 集和 iframe 来源的链接:

  • 父页面:http://msdrop.com/msdrop-jquery-test-iframe-frameset.htm
  • iframe A:http://msdrop.com
  • iframe B:http://nextgd.com/msdrop-jquery-test-iframe.htm

是 Chrome 错误,还是“同源策略”下的安全性?这很奇怪,因为 d&d 在两个窗口之间工作得很好,并且根本不想从父窗口到 iframe。

感谢您的建议。 彼得

编辑:Chrome/Chromium 安全缓解措施可能过于广泛。问题 251718:https://code.google.com/p/chromium/issues/detail?id=251718

【问题讨论】:

标签: javascript jquery iframe cross-domain drag


【解决方案1】:

现在,在:http://msdrop.com/msdrop-jquery-test-iframe-frameset.htm 有 4 个 iframe

  • IFRAME A:与父域相同的域
  • IFRAME B:其他域
  • IFRAME C:同一个域 + sandbox="allow-scripts"
  • IFRAME D:其他域 + sandbox="allow-scripts"

在 FF 中,所有帧都按我的预期工作。

在 Chrome 中,Chromium 仅在 iframe A 上适用于所有 dragover、dragenter、dragleave 和 drop 事件。

【讨论】:

  • 我知道这已经过时了,但是对于它的价值,右边的三个框架中的任何一个都不再加载任何东西,当检查它们时,它们只是在闪烁,好像无限地重新加载。
【解决方案2】:

我想我找到了答案,当打开 Chromium 或 Chrome 时,拖放事件在 iframe 上有效。

chromium-browser --disable-web-security

google-chrome --disable-web-security

但如果是关于谷歌浏览器“网络安全”,为什么 JavaScript 控制台不显示任何信息或警告,为什么拖放在两个窗口之间效果很好,拖放甚至从 firefox 到 chrome 也有效。

编辑:谷歌浏览器:“您正在使用不受支持的命令行标志:--disable-web-security。稳定性和安全性将受到影响。”所以标志有效但不受支持?

我不明白。

【讨论】:

    【解决方案3】:

    向 iframe 元素添加 sandbox="allow-scripts" 为我解决了这个问题。

    例如:

    <iframe sandbox="allow-scripts" src=".." />
    

    【讨论】:

    • 我测试过,理论上应该可以,但是反过来也可以,当设置了sandbox="allow-scripts"时,即使在同一个域中,脚本也不会运行。使用 Linux Chrome “27.0.1453.93”、Windows Chrome “27.0.1453.116 m”、Linux Chromium “6.0.472.63 (59945)”测试。我将 IFRAME C 与 sandbox="allow-scripts" 放在一起,您的 Chrome 浏览器上是否存在 dragover dragenter dragleave 或 dragdrop 事件?
    猜你喜欢
    • 2013-11-29
    • 2013-07-04
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 2011-06-13
    • 2019-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多