2012-02-21 21 views
1

私のサイトに画像を表示するページがあります。イメージを右クリックしてSave Image Asをクリックすると、デフォルトの名前になります。右クリックしてイメージ名を変更して保存したい。JavaScriptのデフォルト画像の拡張子を変更する

これは、たとえば次のとおりです。私のHTMLコードで
私は右クリックしたとき、私は
image src="abc.jpeg"

を持って、私は、このイメージがdef.jpgとして保存することにしたいです。

これを行う方法はありますか?

+0

確かに、なぜこれをやりたいのですか? – Bergi

答えて

-1

あなたがイメージ

<img src=".." onClick="this.src='new URL'"> 

でこれを置くか、あなたはJavaScriptをでそれを行うことはできませんあなたは、私の知る限りでは別の関数

<img src=".." onClick="change(this)"> 
// 
<script> 
function change(img) { 
img.src = 'new src'; 
} 
</script> 
+0

「画像を右クリックして名前を付けて保存」をクリックすると、クリックして別のsrcに変更すると表示されません。 –

+0

私はそれがうまくいくと思います.... this.src = '新しいURL'はURLを変更します.....そして私はちょうど保存中に変更されるイメージ名が必要です –

+0

@alickusああ申し訳ありませんxD Youそれを得るにはjavaが必要です。 – Edig

1

でそれを行うことができます。これは、サーバー側でしか処理できないものです。

PHPを使用している場合は、簡単な解決策はheader()です。

// It will be called downloaded.pdf 
header('Content-Disposition: attachment; filename="downloaded.pdf"'); 

あなたはもちろん変数で置き換えることができます。 PHPのドキュメントから

header('Content-Disposition: attachment; filename="' . $fileName .'"'); 

ユーザーがあなたが送信されたデータを保存するよう求めるメッセージが表示されるようにしたい場合は、そのような生成されたPDFファイルとして 、あなたは»コンテンツディスポジションを使用することができます ヘッダーに推奨ファイル名を指定し、ブラウザに を強制的に保存ダイアログを表示させます。

+0

あなたが言及したことは、**ファイルダウンロード**ちょっとしたものに当てはまります。これは純粋にjavascriptものです。コンテキストメニューは、デフォルトを無効にすることによってのみ編集できます。 – SachinGutte

+0

thanx 私は私に例を挙げることができますか?何がhtml&phpコード –

+0

@リヤリになりますかという質問は、イメージファイルを別の名前で保存するかどうか尋ねられます。コンテキストメニューを無効にしたり、特定のelemetnをクリックしたときに私たち自身を作成し​​たり、execCommandを開いて**別名で保存する**ダイアログボックスとして開くことができます。 Wordpressや他のCMSのTinyMCEのようなRTEのものもexecCommandsを利用しています。 execCommandはブラウザによって動作が異なりますので、注意が必要です。 – SachinGutte

0

すべてのブラウザでサポートされているわけではありません(コンテキストメニューイベントのオプトアウトも可能です)。なぜそうしたいのですか?

あなたのサムネイルの大きなバージョンにリンクしたいと思います。だから、画像タグの周りにリンク(<a>)を置くだけで、誰もが幸せになれます。説明的なツールチップを使用してリンクを指定すると、それがさらに優れています。


EDIT:あなたは既にページに含まれる画像を持っている場合

、あなたは[名前を付けて保存]をクリックしたときに、ユーザーエージェントが提供するデフォルトのタイトルを変更することはできません。ポイント、逸脱なし。

ブラウザは、ダウンロードパスのファイル名を使用している可能性があります。 src属性を動的に(スクリプトによって)変更することはできません。これは、別のファイルがロードされるためです。あなたができることは、既にファイル名の下にあるファイルでページを配信することですが、サーバーで行うことです。

オプション#2は(新しい)ファイルのダウンロードを開始しています。 Content-Dispositionヘッダーでは、(サーバー上で)送信されたコンテンツのファイル名を動的に指定できます。ダウンロードを開始するには、イメージをリンクにラップします(そのうちのhref属性を変更することもできます)。または、ダウンロードリンクを[名前を付けて保存]ボタンとして表示するカスタムコンテキストメニューを作成することもできます(別の質問の問題があります)。

オプション3は、新しいタブ/ウィンドウでファイルを開き、document.execCommand("SaveAs", [...])を適用してタブ/ウィンドウをもう一度閉じます。残念ながら、これはInternet Explorerでのみサポートされています。これと提案についてはDoes execCommand SaveAs work in Firefox?を参照してください。

+0

Thanxだが、srcとは異なる名前で画像を保存したい。 これはFirefoxとChromeでのみ実装されます..... –

+0

JavaScriptのダウンロードの「ファイル名」は設定できません。ダウンロードダイアログが受け入れる特定のヘッダー(上記の@Liyaliを参照)を送信する必要があります。コンテキストメニュー - > [名前を付けて保存]は変更できません。 – Bergi

+0

@Maths脳ティーザー:あなたはそれをクライアント側にすることはできません。 Webブラウザには何も表示されません。単なるサーバー側の設定です。 – Liyali

0

これを行う方法はありますが、ほとんどのブラウザで動作するかどうかはわかりません。 bodyタグにoncontextmenu="return false;"属性を追加します。コンテキストメニューが無効になります(うまくいけば、!)!

カスタムコンテキストメニューが必要な場合は、少しCSSとスクリプトを使用してください。クリックイベントに対するイベントハンドラをアタッチし、左クリックまたは右クリックが発生したときにアクションを実行します。

+0

質問は、コンテキストメニューの変更や無効化の方法ではなく、「行動を実行する」方法に関するものでした。 – Bergi

関連する問題