ファイル サーバーからドキュメント フォルダーを開くリンクが必要な Web アプリケーションに取り組んでいます。フォルダーは、新しいブラウザー タブまたは新しいウィンドウで開くか、コンピューターの既定のファイル ブラウザー プログラム (つまり、Windows エクスプローラー) を使用して開くことができます。このJavaScriptはトリックを行う必要があります:
window.open('file://///fileserver.companyname/public/Documents/','_blank);
このhtmlも機能するはずです:
<a href="file://///fileserver.companyname/public/Documents/">Open Documents</a>
ただし、これらはどちらも Internet Explorer でのみ機能し、ユーザーは常に Firefox と Chrome を使用しています。明らかに、Firefox と Chrome のデフォルトのセキュリティ設定では、「http://」Web サイトからリクエストが呼び出されたときに「file://」を開くことができません。
このページへの参照をいくつか見ました: Links to local pages do not workでは、Firefox を使用して Web ページからファイルを開くことができない理由を説明し、いくつかの回避策を提供しています。残念ながら、2 つのオプションしか提供されていません。各ブラウザー インスタンスにプラグインをインストールするか、各ブラウザー インスタンスにユーザー設定ファイルを作成するかです。ユーザーが多すぎるため、これらのオプションはどちらも受け入れられません。私が働いている会社は、このリンクにアクセスする必要がある各マシンに何も適用するつもりはありません。それとは別に、プラグインと設定ファイルの両方をとにかく試してみましたが、うまくいったのは IE Tab プラグインだけでした。LocalLinks が機能しなかった理由は、ファイルではなくフォルダーを開こうとしているからだと思います。
このスタックオーバーフローの質問では、Chrome の同様のオプションについて説明しています: Google Chrome でローカル リンクを開くことはできますか? 繰り返しますが、LocalLinks プラグインは私には機能せず、プラグインは受け入れられません。
また、Chrome で開いているファイルの上にコマンド ライン引数を使用することを提案している Web サイト ( http://www.askyb.com/chrome/open-local-file-in-google-chrome/ ) と、その方法を示した Web サイトも見つけました。引数を自動的に適用します(https://askubuntu.com/questions/160245/making-google-chrome-option-allow-file-access-from-files-permanent)が、正しく読んでも変更を適用する必要があります当社のウェブサイトにアクセスするすべてのコンピューター。
プラグインをインストールしたり、個々のコンピューターに設定ファイルを追加したりせずに、 Firefox と Chromeの両方で完全にプログラムによって、つまり Web アプリケーションの C# または Javascript コード内でファイル フォルダーを開く方法はありますか? これらのビジネス要件を変更することはできません。
Sidenote : MVC 4 で C# を使用しています。C# でコントローラー アクションを使用してフォルダーを開くことをお勧めします (フォルダーがまだ存在しない場合は、フォルダーを開く前に作成したいため)。クライアント側は許容されます。Internet Explorer の場合、MVC C# コントローラーに組み込まれている JavaScript( ... ) 関数でラップすることにより、C# コードでその JavaScript を作成できます。Firefox と Chrome で IE Tabs をテストするとき、ウィンドウを開く関数ではなく、href リンクとして定義する必要がありました。そうしないと、IE Tabs がそれをリンクとして認識しませんでした。しかし、これらはいずれも、当社のビジネス ニーズに対応できる回避策ではありませんでした。