3

我正在尝试使用https://github.com/zeroclipboard/ZeroClipboard将内容复制到剪贴板。这似乎是一个不错的库,但我收到错误 “在 NPObject 上调用方法错误。” 当复制按钮(闪光灯)悬停时。

似乎是 Flash 安全问题,但我能够加载 Flash 内容。

有任何想法吗?

4

6 回答 6

4

在 1.1.7 之后的版本中,如果您将“ZeroClipboard.swf”托管在与托管页面不同的域上,则需要将“allowScriptAccess”设置为“always”而不是“sameDomain”,“trustedDomains”也应包含当前页面域.

ZeroClipboard.setDefaults( { moviePath:'http://YOURSERVER/path/ZeroClipboard.swf',allowScriptAccess: "always",trustedDomains: location.hostname } );
于 2013-06-20T05:44:17.577 回答
2

我得到它的工作。这是一个同源安全模型后膛。我的网络应用程序子域是“WWW”,但 Flash 内容是从“CDN”提供的。刚刚渲染了来自同一个子域的两个内容。

查找更多 @ https://developer.mozilla.org/en-US/docs/Gecko_Plugin_API_Reference/Scripting_plugins?redirectlocale=en-US&redirectslug=Gecko_Plugin_API_Reference%3AScripting_plugins#NPObject

谢谢。

于 2013-05-27T06:37:44.933 回答
1

请加"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

于 2014-01-15T03:41:26.957 回答
0

我昨天刚刚从 1.0.7 更新到 1.1.7,我遇到了同样的问题......我想知道他们是否破坏了他们昨天所做的提交,因为这是我看到的关于这个问题的唯一帖子.

〜赛斯

于 2013-05-24T16:27:20.993 回答
0

万一这对其他人有帮助,我设法让我的设置消除了这个错误(在本地开发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错误返回。

于 2013-11-22T20:06:11.307 回答
0

否则您的域不是 ssl 安全的,即您的协议http不是,https因此您应该更改您的 swf 链接

https://davidwalsh.name/demo/ZeroClipboard.swf

http://davidwalsh.name/demo/ZeroClipboard.swf

有关更多详细信息,请查看Cross-Protocol Limitations以下文档中的主题

http://www.kellyjandrews.com/zc/guides/limitations/protocol/

于 2015-09-02T13:33:56.510 回答