3

サーバーでホストされていないファイルを使用して、JavaScript + +の Mozilla のデモ使用を半再現しようとしています。<video><canvas>

ドキュメントをロードすると、エラー コンソールに次のエラーが報告されます。

エラー: キャッチされない例外: [Exception... "Security error" コード: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "file:///media/disk/javascript/html5/chromakey/chromakey1.htm Line: 23"]

23行目は次のとおりです。

this.referenceImageData = this.bCtx.getImageData(0, 0, this.bufferCanvas.width, this.bufferCanvas.height);

次のように、以前にビデオのフレームをコピーしたキャンバスから画像データを取得しようとしています。

this.bCtx.drawImage(this.inputElement,
    0, 0,
    this.inputElement.width, this.inputElement.height,
    0, 0,
    this.bufferCanvas.width, this.bufferCanvas.height
);

this.inputElementこの(かなり退屈な)要素を参照する場所:

<video id="MainInput" src="320x240.ogg" width="320" height="240"></video>

JAR でコードに署名せずにこのエラーを回避する方法はありますか?

Firefox の同一オリジン ポリシー ( https://developer.mozilla.org/en/Same_origin_policy_for_JavaScript ) がローカル ファイル アクセスに問題があることに関係していると思いますが、そこからどこへ行くべきかわかりません。

4

3 に答える 3

1

同じオリジンからファイルにアクセスする必要があります。 file:// プロトコルは、明らかなセキュリティ上の理由から非常に制限されていると思います。

これらのファイルにアクセスできるのは拡張機能のみで、より多くの権限が付与されています。

于 2009-06-24T21:59:47.950 に答える