ホームページ ウェブフロントエンド jsチュートリアル js ファイルのダウンロードと名前付け

js ファイルのダウンロードと名前付け

Jun 26, 2017 pm 03:03 PM
firefox ie javascript webkit 互換性がある 名前 ブラウザ

jsファイルのダウンロード; IEでのファイルのダウンロード方法; タグのダウンロード;

機能の機能:

の互換性; IE10、Edge、chrome、firefox;

およびバックグラウンドリクエストメソッド: GETリクエスト、URLはパラメータを運ぶ URL? id=123 (隠しファイルの実際のパス);

ダウンロード関数を実装するための前提条件は、ブラウザの種類を決定することです:

       browserType: function(){var userAgent = navigator.userAgent.toLowerCase();// Figure out what browser is being usedvar testCenter = {
                ie:function isIE() { //ie?if (!!window.ActiveXObject || "ActiveXObject" in window)return true;elsereturn false;
                },
                edge : ()=>{ return /dge/.test(userAgent) },
                chrome:()=>{ return /chrome/.test(userAgent)},
                safari: ()=>{  return /safari/.test(userAgent)&&!(/chrome/.test(userAgent))},
                opera: ()=>{  return  /opera/.test(userAgent) } ,
                msie: ()=>{  return /msie/.test(userAgent) && !/opera/.test(userAgent) },
                mozilla: ()=>{  return /mozilla/.test(userAgent) && !/(compatible|webkit)/.test(userAgent) }
            };var browserObj = {};for(var k in testCenter){var result = testCenter[k]();var version = (userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/) || [])[1];if(result){
                    browserObj.browser = k;
                    browserObj.version = version;return browserObj;
                }
            }
        },
ログイン後にコピー
View Code
ダウンロード関数の定義: 以下の通りです

dlFile : function(options) {var that = this;var url = options.url;
            url += "?" + $.param(options.data);   //这里也可以不用jqvar xhr = new XMLHttpRequest();        //发起请求xhr.open('get', url);
            xhr.responseType = 'blob';        //规定响应为流文件            xhr.send();
            xhr.onreadystatechange = function(){if (this.readyState == 4){if (this.status == '401' || this.status == '402') {                                     //在这里可以进行一些请求失败的处理                    }else if(this.status == 200) {var currentBrowserType = that.browserType();  //判断浏览器类型  见上述browserType函数;if(currentBrowserType.browser==='ie'&&(currentBrowserType.version == "10.0" || currentBrowserType.version == "11.0")){   //如果IE创建iframe对象来下载var href = window.URL.createObjectURL(this.response);var elemIF = document.createElement("iframe");
                                elemIF.src = "http://" + location.host + '/crowd-web/file/downloadFile?' + $.param(options.data);
                                elemIF.style.display = "none";
                                document.body.appendChild(elemIF);
                          }else if( currentBrowserType.browser==='edge'){ //如果edge使用h5的a标签的下载功能实现if (this.getResponseHeader("content-disposition")) {var fileName = decodeURI(this.getResponseHeader("content-disposition").replace("attachment;filename=", ""));
                                }var href = "http://" + location.host + '/crowd-web/file/downloadFile?' + $.param(options.data);var $dllink = $('<a href="&#39; + href + &#39;" download="&#39; + fileName + &#39;" ></a>').appendTo(document.body);
                                $dllink[0].click();
                                 window.URL.revokeObjectURL(href);
                        } else {  //其他现代浏览器采用H5的a标签新特性实现var href = window.URL.createObjectURL(this.response);if (this.getResponseHeader("content-disposition")) {var fileName = decodeURI(this.getResponseHeader("content-disposition").replace("attachment;filename=", ""));
                                }var $dllink = $('<a href="&#39; + href + &#39;" download="&#39; + fileName + &#39;" ></a>').appendTo(document.body);                             //initMouseEvent已经被放弃,直接使用a标签的dom节点click功能触发点击//var event = document.createEvent("MouseEvents");//event.initMouseEvent(//    "click", true, false, window, 0, 0, 0, 0, 0//    , false, false, false, false, 0, null//);//$dllink[0].dispatchEvent(event);$dllink[0].click();

                            window.URL.revokeObjectURL(href); //告诉浏览器可以释放该路径                        }
                    }
                }
            };
        },
ログイン後にコピー
コードを表示
ダウンロード関数呼び出し: 次のように

(上記のメソッドはグローバル オブジェクト ツールで定義されており、必要な方法で記述することもできます)

 tools.dlFile({
                    data : {"fileId":item.id},
                    url :config.URL.downLoad,
                    contentType : "application/json;chartset=utf-8",
                })
ログイン後にコピー
表示コード
関連する知識ポイント:

ファイルをダウンロードするための最良の方法: ブログ投稿;

H5 タグの新機能の使用: ブログ投稿;

Blob オブジェクトと createObjectURL および revokeObjectURL メソッド: ブログ投稿;質問:

タグはクリック イベントをシミュレートします: 次のコードはページ転送をトリガーできると思いますか?

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"></head><body><a href="http://www.baidu.com" id="hehe">百度</a><button>跳到百度</button><script src="bower_components/jquery/dist/jquery.js?1.1.11"></script><script>$("button").click(function(){
         alert(123)
         $("#hehe").click();
    })</script></body></html>
ログイン後にコピー
コードを表示

以上がjs ファイルのダウンロードと名前付けの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? CSSを介してサイズ変更シンボルをカスタマイズし、背景色で均一にする方法は? Apr 05, 2025 pm 02:30 PM

CSSでサイズ変更シンボルをカスタマイズする方法は、背景色で統一されています。毎日の開発では、調整など、ユーザーインターフェイスの詳細をカスタマイズする必要がある状況に遭遇することがよくあります...

カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? カスタムスタイルのシートは、SafariのローカルWebページでバイドゥページでは効果を発揮できないのはなぜですか? Apr 05, 2025 pm 05:15 PM

Safariでカスタムスタイルシートを使用することについてのディスカッション今日は、Safariブラウザ向けのカスタムスタイルシートのアプリケーションに関する質問について説明します。フロントエンド初心者...

Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Webページにローカルにインストールされている「Jingnan Mai Round Body」を正しく表示するにはどうすればよいですか? Apr 05, 2025 pm 10:33 PM

最近、Webページにローカルにインストールされたフォントファイルを使用して、インターネットから無料のフォントをダウンロードし、システムに正常にインストールしました。今...

JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? JavaScriptまたはCSSを介してブラウザ印刷設定でページの上部と終了を制御する方法は? Apr 05, 2025 pm 10:39 PM

JavaScriptまたはCSSを使用して、ブラウザの印刷設定のページの上部と端を制御する方法。ブラウザの印刷設定には、ディスプレイが...

Webページにローカルにインストールされたフォントファイルを使用する方法は? Webページにローカルにインストールされたフォントファイルを使用する方法は? Apr 05, 2025 pm 10:57 PM

Webページにローカルにインストールされたフォントファイルを使用する方法Webページ開発でこの状況に遭遇しましたか:コンピューターにフォントをインストールしました...

ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? ネガティブマージンが場合によっては効果がないのはなぜですか?この問題を解決する方法は? Apr 05, 2025 pm 10:18 PM

なぜマイナスマージンが場合によっては有効にならないのですか?プログラミング中、CSSの負のマージン(負...

Web CarouselダイアグラムのJavaScriptコードを効率的に抽出する方法は? Web CarouselダイアグラムのJavaScriptコードを効率的に抽出する方法は? Apr 05, 2025 pm 12:18 PM

Baidu NewsホームページのCarousel Codeから始めて、多くの人がWebページからJavaScriptコードを抽出して、Baidu New ...などの同様のWebページ効果を実現したいと考えています。

CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? CSSとFlexBoxを使用して、さまざまな画面サイズで画像とテキストのレスポンシブレイアウトを実装する方法は? Apr 05, 2025 pm 06:06 PM

CSSを使用してレスポンシブレイアウトを実装して、Webデザインのさまざまな画面サイズの下でレイアウトの変更を実装する場合、CSS ...

See all articles