我正在尝试使用https://github.com/zeroclipboard/ZeroClipboard将内容复制到剪贴板。这似乎是一个不错的库,但我收到错误 “在 NPObject 上调用方法错误。” 当复制按钮(闪光灯)悬停时。
似乎是 Flash 安全问题,但我能够加载 Flash 内容。
有任何想法吗?
我正在尝试使用https://github.com/zeroclipboard/ZeroClipboard将内容复制到剪贴板。这似乎是一个不错的库,但我收到错误 “在 NPObject 上调用方法错误。” 当复制按钮(闪光灯)悬停时。
似乎是 Flash 安全问题,但我能够加载 Flash 内容。
有任何想法吗?
在 1.1.7 之后的版本中,如果您将“ZeroClipboard.swf”托管在与托管页面不同的域上,则需要将“allowScriptAccess”设置为“always”而不是“sameDomain”,“trustedDomains”也应包含当前页面域.
ZeroClipboard.setDefaults( { moviePath:'http://YOURSERVER/path/ZeroClipboard.swf',allowScriptAccess: "always",trustedDomains: location.hostname } );
我得到它的工作。这是一个同源安全模型后膛。我的网络应用程序子域是“WWW”,但 Flash 内容是从“CDN”提供的。刚刚渲染了来自同一个子域的两个内容。
谢谢。
请加"trustedDomains : [*]"
那不是我解决问题的方法。
var clip = new ZeroClipboard(document.getElementById("copy-button"), {
trustedDomains: [ "*" ],
moviePath: "http://assets.dev.alipay.net/gallery/zeroclipboard/1.2.2/ZeroClipboard.swf"
});
更多详情:https ://github.com/zeroclipboard/zeroclipboard/issues/103
我昨天刚刚从 1.0.7 更新到 1.1.7,我遇到了同样的问题......我想知道他们是否破坏了他们昨天所做的提交,因为这是我看到的关于这个问题的唯一帖子.
〜赛斯
万一这对其他人有帮助,我设法让我的设置消除了这个错误(在本地开发http://localhost:3000
并从 cdnjs.CoffeeScript 加载 Flash 文件:
if ZeroClipboard?
ZeroClipboard.setDefaults
moviePath: "//cdnjs.cloudflare.com/ajax/libs/zeroclipboard/1.1.7/ZeroClipboard.swf"
trustedOrigins: [window.location.protocol + "//" + window.location.host]
trustedDomains: window.location.hostname
allowScriptAccess: "always"
请注意,这trustedDomains
是这里的关键。即使它在 1.1.7 中被弃用,删除它(至少对我来说)会导致可怕的Error calling method on NPObject
错误返回。
否则您的域不是 ssl 安全的,即您的协议http
不是,https
因此您应该更改您的 swf 链接
至
有关更多详细信息,请查看Cross-Protocol Limitations
以下文档中的主题
http://www.kellyjandrews.com/zc/guides/limitations/protocol/