以下のコードを使用してリンクを作成しています。IEでリンクをクリックすると、リンクが機能し、URLを開くことはできますが、Chromeではできません。
Test<a href='#'onClick=window.open('file:\\160.53.112.171\myTest\cons\4.1\displayData.htm','_self') >
以下は、Chromeのコンソールに表示されるエラーメッセージです。
ローカルリソースの読み込みを許可していません:file:file:/// C:/160.53.112.171myTestcons%04.1displayData.htm in chrome。
ここに着陸してasp.netで作業する人向け:
IE以外のすべてのブラウザーで同じ問題(ローカルリソースの読み込みが許可されていない)が発生していました。
私の回避策は、アンカーをハンドラーに直接接続し、パスのクエリ文字列を含めることでした。
<a href='handler.ashx?file=//server_name//dir//filename.pdf' />
次に、ハンドラーがファイルを応答として書き込みます(_selfを使用して、必要に応じて新しいタブで開きます)。
public void ProcessRequest (HttpContext context) {
if (context.Request["file"] != null && !String.IsNullOrEmpty(context.Request["file"].ToString()))
{
try
{
context.Response.Clear();
context.Response.ClearContent();
context.Response.ClearHeaders();
//whichever content type you're working with
context.Response.ContentType = "application/pdf";
//encode the path when you set the href of the anchor, so decode it now
string file_name = HttpUtility.UrlDecode(context.Request["file"].ToString());
context.Response.TransmitFile(file_name);
}
catch { }
}
}
IEのJavaScriptでFILE:\\\\
を使用してファイルを開こうとした場合。 IEは、いくつかのセキュリティ制限のため、これを開くことができません(これはデフォルトの動作です)。私はこれに直面しましたIE以前に複数のセキュリティ問題IEセキュリティ設定を以下のように変更してみることができますが、推奨されていません(動作を変更するためにすべてのユーザーの設定を変更することはできないため)。
以下の設定はIE 8で機能します
Internet Explorerで、[ツール]→[インターネットオプション]→[詳細設定]に移動します。 [セキュリティ]セクションまでスクロールし、[マイコンピュータのファイルでアクティブコンテンツを実行できるようにする]チェックボックスをオンにします。