2

我正在尝试开发一个将在 Firefox 3 中使用 javascript 中的 getImageData 的应用程序,但我NS_ERROR_DOM_SECURITY_ERR在 getImageData 调用中得到一个“”。javascript 和图像当前都由硬盘驱动器提供服务,这显然违反了安全性?当这是现场直播时,它们都将由同一个域提供服务,所以这不会成为问题,但同时我该如何开发呢?

4

4 回答 4

5

您可以告诉浏览器关闭错误。根据您的情况,解决方案是好是坏。我尝试将其包装起来,因此如果不是问题,将不会显示安全对话框。

  var data;
  try {
    try {
      data = context.getImageData(sx, sy, sw, sh).data;
    } catch (e) {
      netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
      data = context.getImageData(sx, sy, sw, sh).data;
    }
  } catch (e) {
    throw new Error("unable to access image data: " + e);
  }
于 2008-12-14T12:34:17.577 回答
3

您可以尝试安装本地网络服务器,例如 Apache(在 unix 上)或 IIS(在 Windows 上)。这最终将为您提供与 Web 相关的内容的最佳本地测试平台,因为正如您所发现的,浏览器处理来自文件系统的文件与来自网络服务器的内容完全不同。

于 2008-12-11T06:06:45.000 回答
2

在 Firefox 中,在地址栏中输入“about:config”。然后使用搜索字段搜索“security.fileuri.strict_origin_policy”。双击它以将其设置为“false”。

于 2010-08-06T15:19:00.400 回答
1

我在 FireFox 11.0 中使用时遇到了同样的问题getImageData……我所有的文件和代码都在我的服务器上,而我的本地计算机上什么也没有。

我想也许这对和我有同样问题的人有帮助。

看起来 Firefox 对待

http://mySite.com

作为不同的域

http://www.mySite.com

所以我曾经在用户不输入时.htaccess添加www.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mySite\.com$ [NC]
RewriteRule ^(.*)$ http://www.mySite.com/$1 [L,R=301]

现在它工作正常并且不再显示NS_ERROR_DOM_SECURITY_ERR

于 2012-04-22T03:49:38.923 回答