canvas.toDataURL image/png エラー処理方法の推奨

canvas.toDataURL image/png エラー処理方法の推奨

問題の背景:

再生中のビデオのスクリーンショットを撮る必要があります。ビデオはビデオタグを使用して再生され、ビデオ再生領域をクリックするとリアルタイムのフレーム画像がキャプチャされます。

コードは次の通り非常にシンプルです:

JavaScriptコードコンテンツをクリップボードにコピー
  1. varビデオ = document.getElementById( 'ビデオ' );
  2.   
  3. varキャンバス = document.getElementById( 'キャンバス' );
  4.   
  5. var ctx = canvas.getContext( '2d' );
  6.   
  7. var img = document.getElementById( 'img' );
  8.   
  9. 関数スナップショット() {
  10. ctx.drawImage(ビデオ,0,0);
  11. img.src = canvas.toDataURL( 'image/png' );
  12. }
  13.   
  14. video.addEventListener( 'click' 、スナップショット、 false );

質問:

キャッチされない SecurityError: 'HTMLCanvasElement' で 'toDataURL' を実行できませんでした: 汚染されたキャンバスはエクスポートできない可能性があります。

確認と分析の結果、これは実際にはビデオファイルが配置されているドメインと、画像やページが配置されているドメインが異なっていたため、クロスドメイン伝送の問題が発生していたことが判明しました。

解決:

ビデオ ファイルをページがあるドメインの下に配置します。

元のアドレス: http://blog.csdn.net/luochao_tj/article/details/44942125

<<:  Vueライフサイクルカメラの8つのフック関数

>>:  mysql ワイルドカード (sql 高度なフィルタリング)

推薦する

jsはaudioContextを通じて3Dサウンド効果を実現します

この記事では、audioContextを介して3Dサウンド効果を実現するためのjsの具体的なコードを...

Linuxテキスト処理ツールの詳細な説明

1. /etc/passwdファイル内のデフォルトシェルが/sbin/nologinではないユーザー...

JavaScript の parseInt() の魔法についての簡単な説明

原因このブログを書いた理由は、今日Leetcodeの日課問題をやっていたからです。文字列を整数(at...

HTML5+CSS3 ヘッダー作成例と更新

前回、私たちは 2 つのヘッダー レイアウト (フレックスボックス 1 つとフロート 1 つ) を考...

Angular のパフォーマンス最適化: サードパーティ コンポーネントと遅延読み込みテクノロジー

目次概要環境の準備プロジェクトのパフォーマンスに影響を与える要因遅延読み込みとは何ですか?プロジェク...

CSS における px、em、rem、pt の特徴、違い、変換について詳しく説明します。

コンセプト紹介: 1. px (ピクセル):仮想的な長さの単位で、コンピュータ システムのデジタル画...

Linux での chmod コマンドの使用方法の詳細な説明

chmod コマンド構文chmod コマンドを使用する場合の正しい構文は次のとおりです。 chmod...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

Vueログイン機能の実装

目次前面に書かれたログインの概要ログインビジネスプロセスログインサービスの関連技術ポイントログイント...

Vue のプラグインとコンポーネントの違いと使い方のまとめ

このチュートリアルの動作環境: Windows 7 システム、vue 2.9.6 バージョン、DEL...

JavaScriptがDOMツリーの構築にどのように影響するかについて詳しく説明します。

目次ドキュメント オブジェクト モデル (DOM) DOM と JavaScript DOMツリーの...

MYSQL フルバックアップ、マスタースレーブレプリケーション、カスケードレプリケーション、および半同期の概要

MySQL フルバックアップ1. バイナリログを有効にし、データベースから分離して別々に保存する v...

Docker 実行時にユーザーとグループを管理する方法

Docker はプロセスを中核としてシステムリソースを分離する管理ツールです。分離は、オペレーティン...

Redis イメージの Docker インストールと設定手順

目次序文環境インストールMySQLコンテナを作成して起動する落とし穴を避けるための注意MySQLコン...

MySQL で指定エンコーディングを実装する際の落とし穴について

前面に書かれた環境: MySQL 5.7+、MySQL データベースの文字エンコードは utf8、テ...