ZeroClipboard / zlip在iframe中导致不安全的Javascript警告

时间:2012-12-05 00:40:29

标签: javascript cross-domain zeroclipboard

我正在使用zClip:http://www.steamdev.com/zclip/(并尝试使用ZeroClipboard同样的结果)

当我在iframe中使用它时,我收到此javascript错误/警告:

Unsafe JavaScript attempt to access frame with URL file://localhost/Users/me/Desktop/test.html from frame with URL http://localhost:3000/a. The frame requesting access has a protocol of 'http', the frame being accessed has a protocol of 'file'. Protocols must match.

file://localhost/Users/me/Desktop/test.html是我设置的本地文件,其中包含iframe,用于加载我的小部件。复制按钮位于小部件中。

尽管出现错误,复制功能似乎仍能完美运行,所以我不确定它为什么会存在并想要清理它。

这是我在小部件中的咖啡/ javascript:

  btn = $('#'+id)
  btn.zclip
    path: '/flash/ZeroClipboard.swf',
    copy: btn.data('copy')

这只是标准的东西。当我评论btn.zlip块时,错误消失,所以它似乎就是那条线。

我假设zeroclip javascript中有一些东西在iframe之外冒泡到父级,但我找不到任何随便的东西。想知道是否有其他人解决了这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

每当一个flash对象嵌入到跨域iframe中时,它就会抛出一个跨域异常。

例如,请使用嵌入的iFrame查看此jsfiddle:http://jsfiddle.net/bkCdB/

<object width="420" height="315"><param name="movie" value="http://www.youtube.com/v/6V_DsL1x1uY?version=3&amp;hl=en_US"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/6V_DsL1x1uY?version=3&amp;hl=en_US" type="application/x-shockwave-flash" width="420" height="315" allowscriptaccess="always" allowfullscreen="true"></embed></object>