質問

Internet Explorerでファイルの自動ダウンロードを初期化するにはどうすればよいですか

たとえば、ダウンロードページに、ダウンロードリンクとメッセージを表示したい場合:<!> quot;ダウンロードが自動的に開始されない場合.... etc <!> quot;。ダウンロードは、ページが読み込まれた直後に開始されます。

Firefoxではこれは簡単です。ヘッダーにメタタグを含める必要があります。<meta http-equiv="Refresh" content="n;url"> nは秒数、urlはダウンロードURLです。これはInternet Explorerでは機能しません。 Internet Explorerブラウザーでこれを機能させるにはどうすればよいですか?

役に立ちましたか?

解決

SourceForge は、ファイルを指す<iframe>属性を持つsrc=""要素を使用しますダウンロード。

<iframe width="1" height="1" frameborder="0" src="[File location]"></iframe>

(副作用:リダイレクトなし、JavaScriptなし、元のURLは変更されません。)

他のヒント

サイトがダウンロードを非常に複雑にし、古き良きの代わりにハックを使用する場合、嫌いリンク

デッドシンプルバージョン:

<a href="file.zip">Start automatic download!</a>

動作します!すべてのブラウザで!


通常はインラインで表示されるファイル(イメージなど)をダウンロードする場合、HTML5にはファイルのダウンロードを強制するdownload属性があります。また、ファイル名を上書きすることもできます(より良い方法はありますが):

<a href="report-generator.php" download="result.xls">Download</a>

<!> quot; thanks <!> quot;を含むバージョンページ:

<!> quot; thanks <!> quot;を表示する場合ダウンロード後、次を使用します。

<a href="file.zip" 
   onclick="if (event.button==0) 
     setTimeout(function(){document.body.innerHTML='thanks!'},500)">
 Start automatic download!
</a>

その中の機能はsetTimeoutより高度で、たとえばAJAXを介して全ページをダウンロードします(ただし、ページ<!>#8212; <!> nbsp; window.locationに触れたり、他のリンクをアクティブにしないでください)。

ポイントは、ダウンロードへのリンクが本物であり、コピー、ドラッグ、ダウンロードアクセラレーターによるインターセプト、:visited色の取得、ブラウザーの再起動後にページが開いたままになっている場合は再ダウンロードしないなどです

これがImageOptimに使用するもの

同様の問題がありましたが、上記の解決策はどれもうまくいきませんでした。これが私の試みです(jqueryが必要です):

$(function() {
  $('a[data-auto-download]').each(function(){
    var $this = $(this);
    setTimeout(function() {
      window.location = $this.attr('href');
    }, 2000);
  });
});

使用法:問題のダウンロードを指すリンクにdata-auto-downloadという属性を追加するだけです。

<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="/your/file/url">here</a>.</p>

すべての場合に機能するはずです。

最近、ページに次のスクリプトを配置して解決しました。

setTimeout(function () { window.location = 'my download url'; }, 5000)

メタリフレッシュの方がいいと思いますが、うまくいかない場合はどうしますか...

簡単なjQueryでこの問題を解決できました。

$(function() {
   $(window).bind('load', function() {
      $("div.downloadProject").delay(1500).append('<iframe width="0" height="0" frameborder="0" src="[YOUR FILE SRC]"></iframe>'); 
   });
});

私のHTMLでは、単純に

<div class="downloadProject"></div>

これは、1秒半待ってから、ダウンロードするファイルを参照するiframeをdivに追加するだけです。 iframeがページ上で更新されると、ブラウザがファイルをダウンロードします。そのような単純な。 :D

これはいくつかのサイトで使用しているものです(jQueryが必要です)。

$(document).ready(function() {
    var downloadUrl = "your_file_url";
    setTimeout("window.location.assign('" + downloadUrl + "');", 1000);
});

ファイルは1秒後に自動的にダウンロードされます。

これを使用しましたが、動作しているようで、フレームワークなしの単純なJSです:

Your file should start downloading in a few seconds. 
If downloading doesn't start automatically
<a id="downloadLink" href="[link to your file]">click here to get your file</a>.

<script> 
    var downloadTimeout = setTimeout(function () {
        window.location = document.getElementById('downloadLink').href;
    }, 2000);
</script>

注:これにより、ページがロードされた瞬間にタイムアウトが開始されます。

Chrome、firefox、IE8以降で動作します:

var link = document.createElement('a');
document.body.appendChild(link);
link.href = url;
link.click();

チェックして見つけました。onclickイベントをアンカータグまたは入力ボタンに書き込むことで、ボタンクリックで動作します

onclick='javascript:setTimeout(window.location=[File location], 1000);'

キャッシュなしのヘッダーなしで ファイルを提供してください!ユーザーが<!> quot; open <!> quot;を試みた場合、IEにはこれに関する問題があります。最初に保存せずにダウンロードします。

ルートに戻り、これを使用します:

<meta http-equiv="refresh" content="0; url=YOURFILEURL"/>

WC3に準拠していない可能性がありますが、すべてのブラウザーで完璧に動作し、HTML5 / JQUERY / Javascriptはありません。

あいさつトム:)

もう1つ:

var a = document.createElement('a');
a.setAttribute('href', dataUri);
a.setAttribute('download', filename);

var aj = $(a);
aj.appendTo('body');
aj[0].click();
aj.remove();

これは、すべてのブラウザで動作するように思えました。

 <script type="text/javascript">
    window.onload = function(){
     document.location = 'somefile.zip';
    }
    </script>

これはあなたに役立つと思います。しかし、ビジターは時間をかけずに数秒で何かを得た場合、簡単です。したがって、再びサイトにアクセスします。 <a href="file.zip" onclick="if (event.button==0) setTimeout(function(){document.body.innerHTML='thanks!'},500)"> Start automatic download! </a>

ダイナミックリンクを使用してダウンロードをトリガーしようとする場合、ブラウザ間で一貫して動作させるのは難しいです。

IE10 +でPDFのダウンロードに問題があり、 @dandavis ' download関数を使用しました( https://github.com/rndme/download )。

IE10 +にはmsSaveBlobが必要です。

これがすべてのブラウザで機能することを願っています。自動ダウンロードのタイミングを設定することもできます。

<html>
<head>
<title>Start Auto Download file</title>
<script src="http://code.jquery.com/jquery-3.2.1.min.js"></script>
<script>
$(function() {
$('a[data-auto-download]').each(function(){
var $this = $(this);
setTimeout(function() {
window.location = $this.attr('href');
}, 2000);
});
});
</script>
</head>
<body>
<div class="wrapper">
<p>The download should start shortly. If it doesn't, click
<a data-auto-download href="auto-download.zip">here</a>.</p>
</div>
</body>
</html>

デモはこちら

素敵なjqueryソリューション:

jQuery('a.auto-start').get(0).click();

<a>タグ内でダウンロード用に別のファイル名を設定することもできます:

Your download should start shortly. If not - you can use
<a href="/attachments-31-3d4c8970.zip" download="attachments-31.zip" class="download auto-start">direct link</a>.
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top