0

現在、ウェブサイトの訪問者向けの一時的なダウンロード ページを作成しています。

このページにはフォームが含まれており、訪問者がフォームに入力すると、サイトは PDF ダウンロード ページに移動します。

ダウンロード ページには、いくつかの pdf ファイルのダウンロード リンクがあります (タグを使用しているだけです)。ただし、これらのリンクに onclick イベントを作成したいのですが、クリックすると、ページが自動的に更新されるか、他のページにリダイレクトされます。

<a href="/file.pdf" onClick="window.location.reload()">The File</a>

私はjqueryの方法も試しました。

<a href="/file.pdf" id="FileDownload">The File</a>
<script>
   $("#FileDownload").click(function(){
         location.reload();
   });
</script>

しかし、それらはすべて機能していません。マスターはこれについて何か良いアイデアを持っていますか、どうもありがとう。

PSファイルのダウンロードが開始された後にカウントダウンを追加し、カウントダウンが終了したときにページをリロードしたい場合はどうすればよいですか。

いくつかの質問をしたようです...事前にたくさんの感謝をします。

4

4 に答える 4

4

これは機能します:

http://jsbin.com/imikit/5

タイムアウトは、ファイルを提供するサーバーの応答時間よりも長く設定する必要があります。そうしないと、JavaScript が起動しません。なので高めに設定。

<a href="http://ipv4.download.thinkbroadband.com/1GB.zip" id="download">The File</a>

$('#download').click(function() {
  setTimeout(function() {
    window.location = 'http://www.google.com/';
  }, 1000);
});

または

<a href="http://ipv4.download.thinkbroadband.com/1GB.zip" id="download" target="_blank">The File</a>

$('#download').click(function() {
  window.location = 'http://www.google.com/';
});

ほとんどのブラウザーは、ダウンロードが開始されると、新しく開いたウィンドウを閉じます。


Lighttpd 2 のmod_uploadは一見の価値があるかもしれません。残念ながら、Lighttpd 2 の安定版はまだありません。


ダウンロードとともに Cookie を送信してから、javascript で検出することができます。これは、ヘッダーが送信された後、または本文が送信された後に設定されます。(試して)

于 2012-06-07T21:56:29.403 に答える
1

できることの 1 つは、ダウンロードを新しいウィンドウで開き、ページをリダイレクトすることです。

<a href="/file.pdf" id="FileDownload">The File</a>
<script>
   $("#FileDownload").click(function(e){
       e.preventDefault();
       window.open(this.href);
       location.reload();
   });
</script>
于 2012-06-07T21:54:08.330 に答える
1

リンクをクリックすると、デフォルトのアクションはそれに従うことであり、onClick コードを追加してもそれは変わりません。

試す: onClick="windows.location.reload();return false;"

これで最初の部分は解決します。

2番目の部分(ダウンロード終了時のカウンター/リダイレクト)については、このプラグインを使用してくださいhttp://johnculviner.com/post/2012/03/22/Ajax-like-feature-rich-file-downloads-with-jQuery-File- Download.aspxを使用してファイルをダウンロードし、successCallback を使用してリダイレクトします。

$.fileDownload('/file.pdf', {
    successCallback: function () { 
         windows.location.reload();
    }
});
于 2012-06-07T21:58:54.240 に答える
1

onClickパラメータには 2 つのオプションがあります。

  1. セミコロンを含むことができる各行の間にセミコロンを追加します

  2. すべてのタスクを実行する関数を作成し、そのonClickメソッドを呼び出します。

他の誰かが jQuery 側で手助けできるかもしれませんが、それは似ていると思います。

これらのメソッドはすべて、好きなだけイベントを発生させます。

カウントダウンについては、setTimeout()関数を試してください。

編集:コメントを見た後、試してみてください<a href="file.pdf" target="_blank" onClick="window.location.reload()">Click Here</a>。これにより、ポップアップ ウィンドウでリンクが開き、現在のリンクがリロードされます。reload() イベントが発生する前にリンクが開くようにするには、リロードに setTimeout() が必要になる場合があります。

于 2012-06-07T21:47:57.703 に答える