js ファイルのダウンロードと名前付け
機能の機能:
の互換性; 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; } } },


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="' + href + '" download="' + fileName + '" ></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="' + href + '" download="' + fileName + '" ></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", })
<!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 サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









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

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

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

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

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

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

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

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