質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

994閲覧

FireFoxでリンク(href="test.txt")をクリックすると関連付けされたテキストエディタを開きたい

yrema

総合スコア286

Firefox

Mozilla Foundationによって作られた無料、オープンソース、クロスプラットフォームなウェブブラウザ

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2017/10/26 02:00

タイトルの通りですが、リンクのhrefにテキストファイルを設定すると、ブラウザで表示されてしまいますが、
これをダウンロードできる方式に変更し、かつ拡張子が関連付けされたテキストエディタを自動で開くという動作は可能でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

すべてはユーザーが使っているwebブラウザの挙動(実装)次第になってしまうので、
確実な方法がない気がします。

A要素href属性でテキストファイルを示すと、
ほぼ100%のwebブラウザは自力で表示しようとします。

そのため、phpなど応答ヘッダー
「Content-Type: application/force-download」
を出力できる手段を介して、
webブラウザに対して強制的にダウンロードさせるよう指示することは出来ますが、
比較的新しい概念なので古いwebブラウザでは意味が無いかもしれません。

参考:ブラウザにファイルを強制ダウンロードさせるContent-Type - Qiita

また、html5のdownload属性でできるという話もあります。
参考:.NET TIPS:ファイルをダウンロードさせるには?[JavaScript] - @IT

なお、ファイルをダウンロードさせることは出来ても、
ダウンロードしたファイルを関連付けされているプログラムから開く挙動ができるかどうかは、
仮にFirefoxだとして
オプション→一般→プログラムにてプログラムの関連付けを定義する必要があります。
参考:ファイル読み込み時の動作設定 | Firefox ヘルプ

投稿2017/10/26 02:08

編集2017/10/26 02:17
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yrema

2017/10/26 02:11 編集

ブラウザはFireFox固定です。また、サーバ側をいじることはありません。(サーバが立っておらず、完全ローカル内での使用です)
退会済みユーザー

退会済みユーザー

2017/10/26 02:18

Firefoxの設定変更について、回答内に追記してあります。
yrema

2017/10/26 02:23

オプション→一般→プログラムで[ウェブからダウンロードしたファイルを Firefox が取り扱う方法とブラウズ中に使用するプログラムを選んでください。]の部分のことを指していると思われますが、ここの[ファイルの種類(content type)]にtxtがありません。追加ボタンもなさそうです。追加することはできるのでしょうか?
退会済みユーザー

退会済みユーザー

2017/10/26 02:32 編集

プログラム設定 - Firefox が取り扱うファイルの種類ごとの動作 | Firefox ヘルプ <https://support.mozilla.org/ja/kb/applications-panel-set-how-firefox-handles-files> によると、Firefoxユーザーのプロファイルディレクトリに、handlers.jsonというファイルが有り、そこに定義があるようです。バックアップを取った上で手修正してみたら、もしかして。この先はFirefox自体の話なので、MozillaZine.jp フォーラム <https://forums.mozillazine.jp/> の方が解決に近づけそうな気がします。
退会済みユーザー

退会済みユーザー

2017/10/26 02:37

ちなみに、Content-type: text/plain; に該当するテキストファイルについての挙動を変更できたとした場合に、あらゆるサイトについて挙動が変わってしまうのは少々面倒になるかもしれません。 サイト単位で定義を変えてしまうアドイン Force Content-Type :: Firefox 向けアドオン <https://addons.mozilla.org/ja/firefox/addon/force-content-type/?src=search> というのもあり、urlがマッチしたサイトのcontent-typeがマッチしたものを別のcontent-typeに変えるものです。むしろこっちのほうが可能性が高いかも? text/plain→application/octet-streamに捻じ曲げれば。
guest

0

ブラウザ内で開くのを阻止することは、Content-typeapplication/octet-stream(要は「単なるデータ」という意味)にすることで可能です。

ただ、そこから先の動作はブラウザ次第です。通常はよくて「保存するか開くダイアログを表示する」、最近のChromeのように「聞かずにダウンロードを開始する」ものもありますので、そこの制御はWeb上からだと難しいです。

投稿2017/10/26 02:07

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yrema

2017/10/26 02:09

ブラウザはFireFox固定です。
maisumakun

2017/10/26 02:13

Firefoxの場合、ユーザー設定に依存します(特定のブラウザでそう動けばいいのであれば、ブラウザ側で「テキストファイルは関連付けに従って開く」と設定できます)。
yrema

2017/10/26 02:26

オプション→一般→プログラムの設定にはテキストファイルを関連付けに従って開くようにはなっていない(そもそもテキストファイルの項目がない)のですが、別の設定画面のことを指していますか?
maisumakun

2017/10/26 02:32

「Content-typeをtext/plainから切り替える」ことも必要となるようです。 …というより、ローカルでやるのにわざわざブラウザを介して、余計に複雑化させているようにしか思えないのですが。
yrema

2017/10/26 02:40

既にhtmlで作られたものに対する改修ですので、ブラウザ以外の選択肢はありません。
maisumakun

2017/10/26 02:46

Electronなどのように、「ブラウザをラッピングしたアプリを作る」という選択肢もありそうな気はします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問