ホームページ ウェブフロントエンド jsチュートリアル JavaScript の URL オブジェクトについて話しましょう

JavaScript の URL オブジェクトについて話しましょう

Jul 10, 2020 pm 04:51 PM
javascript

URL から要素を分析して抽出するコードを自分で作成すると、さらに面倒で面倒になる可能性があります。この社会で最も「怠け者」のグループの 1 つであるプログラマは、車輪を際限なく再発明することに耐えられないと感じるはずです。そのため、ほとんどのブラウザには標準ライブラリに URL オブジェクトが組み込まれています。

これで、URL 文字列をパラメータとして URL のコンストラクターに渡し、そのインスタンスを作成して URL コンテンツを解析できるようになりました。答えは「はい!」です。

URL コンストラクターを使用して URL オブジェクトを作成するには、new を使用して次のコードで作成します。

new URL('https://www.grapecity.com.cn');
ログイン後にコピー

上記のコードでは、絶対パスを使用して URL オブジェクトのインスタンスを作成します。住所。しかし同時に、最初のパラメータとして相対アドレスを渡し、2 番目のパラメータとして相対アドレスのベース URL を渡して URL オブジェクトを作成することもできます。一口にすぎないかもしれませんが、例を挙げてみましょう:

new URL('/developer', 'https://www.grapecity.com.cn');
ログイン後にコピー

上記のコードを見てください。2 番目の基本的な URL パラメーターは、相対アドレス フラグメントではなく、有効な絶対アドレスである必要があります。http :// である必要があります。または https:// の場合は、チェーン定義と同様の方法で次のコードで使用することもできます。

const gcUrl = 'https://www.grapecity.com.cn/';

const gcDevUrl = new URL("/developer", gcUrl);

const gcUrl2 = new URL(gcUrl);

const gcSlnUrl = new URL('/solutions', gcUrl2);

const Url = new URL('aboutus', gcSlnUrl);
ログイン後にコピー

各パラメータが toString() を使用している場合、実行結果は次のようになります。次のようになります:

https://www.grapecity.com.cn/

https://www.grapecity.com.cn/developer

https: //www.grapecity.com.cn/

https://www.grapecity.com.cn/solutions

https://www.grapecity.com.cn /aboutus

2 番目のパラメータはオプションのパラメータであり、最初のパラメータが相対アドレスの場合にのみ渡す必要があります。渡した文字列または URL オブジェクトは、Unicode スカラー値の可能なシーケンスのセットに対応する USVString オブジェクトに変換されます。私たちのコードでは、それらを通常の文字列として扱うことができます。両方のパラメータが相対アドレスである場合、またはベース URL と相対アドレスの両方が無効な場合は、TypeError 例外がスローされます。 URL オブジェクトの toString メソッドは、コンストラクターで動作する前に URL オブジェクトを完全な URL 文字列に変換するため、URL オブジェクトを 2 番目のパラメーターに直接渡すことができます。

URL オブジェクトには、次の属性を含めることができます:

ハッシュ、ホスト、ホスト名、href、オリジン、ユーザー名/パスワード、パス名、ポート、プロトコル、検索、その他の属性。一緒に彼らを知りましょう!

ハッシュ属性

ハッシュ属性は、URL の # 記号以降の部分を取得できます。文字列はパーセント デコードされていないため、以下に示す特殊記号は引き続きエンコードされます。これらは、以下のマッピングを使用してエンコードされます。エンコード プロセス中に、左側の文字が右側の文字に変換されます:

  • ##':':
  • '/' /
  • '?'?
  • '# '
  • #'['[
  • ']']
  • '@'@
  • '!' !
  • ##'$'
  • $##“'"
  • ' '('
  • (')'
  • )'*'
  • #' '
  • #+# ' ,'
  • ,';'
  • ;'='
  • ='%'
  • %' '
  • または たとえば、この URL 文字列 https://www.grapecity.com.cn/developer/spreadjs#price があり、その後、あなたは以下に示すように、ハッシュ属性値を直接取り出すことができます。
  • const exampleUrl = new URL('https://www.grapecity.com.cn/developer/spreadjs#price');
    console.log(exampleUrl.hash);
    ログイン後にコピー
実行結果では、console.log ステートメントに「#price」が取得されます。プロパティは USVString であり、上記のように取得すると文字列に変換されます。これは読み取り専用属性ではないため、次のコードのように値を直接割り当てることもできます。

exampleUrl.hash = '#newHash';
ログイン後にコピー

例:

const exampleUrl = new URL('https://www.grapecity.com.cn/developer/spreadjs#price'); 
exampleUrl.hash ='#newPrice'; 
console.log(exampleUrl.hash);
ログイン後にコピー

更新された URL https を取得できます。 href 属性 ://www.grapecity.com.cn/developer/spreadjs#newHash

Host 属性

URL オブジェクトには、ホストという名前の USVString が含まれます。 : の後にポートが含まれている場合は、ホストのポート番号も取得します。たとえば、次のような場合:

const exampleUrl = new URL('http://huozige.grapecity.com.cn:8080/');
console.log(exampleUrl.host);
ログイン後にコピー

我们就能获得huozige.grapecity.com.cn:8080。与其他USVString属性一样,当我们检索它时,它会转换为字符串。同样的,它也不是只读属性,所以我们也可以像hash属性一样为它赋值:

const exampleUrl = new URL('http:// huozige.grapecity.com.cn:8080/功能演示');
exampleUrl.host = 'es.grapecity.com.cn:80';
console.log(exampleUrl);
ログイン後にコピー

这样我们一样能够获得全新的URL。

Hostname 属性

使用hostname属性,可以从URL得到端口外的主机名:

const exampleUrl = new URL('http:// huozige.grapecity.com.cn:8080/功能演示');
console.log(exampleUrl.hostname)
ログイン後にコピー

你同样也可以像修改其他属性一样修改hostname属性,例如:

exampleUrl.hostname = ‘newExample.com’;
ログイン後にコピー

Href 属性

URL对象的href属性包含了传入URL对象的整个地址字符串,例如:

const exampleUrl = new URL('https://www.grapecity.com.cn/developer/spreadjs#price');
console.log(exampleUrl.href);
ログイン後にコピー

打出来的就是我们传给URL构造函数的内容,和其他属性一样,href属性也不是只读的。

Origin 属性

区别于其他属性,Origin是一个只读属性,它将为你返回具有URL来源的Unicode序列化USVString。Origin的结构是由传入的URL类型决定的,对于http或https 的链接,得到的Origin将会为 协议(http/https)+ (://) + 域名 + (:端口),一般情况下,默认端口将会被忽略。对于BLOB 链接,Origin返回的则是BLOB:后面的部分。例如:

const url1 = new URL("https://www.grapecity.com.cn/:443")
const url2 = new URL("blob:https://www.grapecity.com.cn/:443")
console.log(url1.origin);
console.log(url2.origin)
ログイン後にコピー

你将会得到

https://www.grapecity.com.cn

UserName & Password属性

UserName和Password属性也是可写属性,它能提取域名前的用户名和密码部分的内容,例如:

<p>const url = new URL(&#39;https://username:password@www.grapecity.com.cn&#39;);<br/>console.log(url.username);<br/>console.log(url.password);<br/>url.username = “username1”;<br/>url.password = “password1”;<br/>console.log(url.username);<br/>console.log(url.password);</p>
ログイン後にコピー

Pathname属性

这个属性是指获得传入url的第一个斜杠(/) 后面除参数外的部分,例如:

<p>const url = new URL ("https://www.grapecity.com.cn/developer/spreadjs#price")<br/>console.log(url.pathname);</p>
ログイン後にコピー

Port属性

Port属性是指可以获得传入Url地址的端口值,这个属性也是可写的。

<p>const url = new URL(&#39;http://huozige.grapecity.com.cn:8080/功能演示&#39;);<br/>console.log(url.port);</p>
ログイン後にコピー

Protocol属性

可以获得传入Url地址参数的协议名,一般是指类似http:,https:,ftp:,file:等这样的协议。

<p>const url = new URL(&#39;https://www.grapecity.com.cn/&#39;);<br/>console.log(url.protocol);</p>
ログイン後にコピー

Search属性

可以获得传入Url地址参数?后的部分,但该属性只能获得整个查询字符串,如若需要了解各个参数的值,可以使用searchParams属性。

<p>const url = new URL(&#39;https://www.grapecity.com.cn:443?key1=value1&key2=value2&#39;);<br/>console.log(url.search);</p>
ログイン後にコピー

searchParams属性

search属性只为我们获取了整个参数字符串,如果有把字符串解析为键值对,这时候searchParams属性就派上了用场,该属性将获得一个URLSearchParams对象,该对象具有列出查询字符串键值对列表的能力,例如,要获取参数列表,我们可以这样使用。

<p>const url = new URL(&#39; https://www.grapecity.com.cn/?key1=value1&key2=value2&#39;); <br/>console.log(url.searchParams.get(&#39;key1&#39;)); <br/>console.log(url.searchParams.get(&#39;key2&#39;));</p>
ログイン後にコピー

从第一个console.log语句中获得value1,从第二个console.log语句中获得value2。URLSearchParams对象有一个get方法,通过键名获取给定查询字符串键的值。

静态方法

URL构造函数里有2个静态方法,它有createObjectURL()方法和revokeObjectURL()方法。

URL.createObjectURL()静态方法会创建一个 DOMString,其中包含一个表示参数中给出的对象的URL。这个 URL 的生命周期和创建它的窗口中的 document 绑定。这个新的URL 对象表示指定的 File 对象或 Blob 对象。

URL.revokeObjectURL()方法会释放一个通过URL.createObjectURL()创建的对象URL. 当你要已经用过了这个对象URL,然后要让浏览器知道这个URL已经不再需要指向对应的文件的时候,就需要调用这个方法。

总结

最后为大家带来一张表,希望能更好的帮助大家通览

 

有了URL对象,操纵和从URL中提取部分不再是一件痛苦的事情,因为我们不必自己编写所有代码来完成这项工作。大多数浏览器的标准库中都内置了URL对象。现在我们可以将URL作为字符串传递给URL构造函数并创建URL的实例。然后,我们可以使用方便的值属性和方法来操作并获得我们想要的URL部分。

本文转载自:https://www.cnblogs.com/powertoolsteam/p/urlobject.html

相关教程推荐:JavaScript视频教程

以上がJavaScript の URL オブジェクトについて話しましょうの詳細内容です。詳細については、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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

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

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 Dec 17, 2023 pm 02:54 PM

WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法 はじめに: 技術の継続的な発展により、音声認識技術は人工知能の分野の重要な部分になりました。 WebSocket と JavaScript をベースとしたオンライン音声認識システムは、低遅延、リアルタイム、クロスプラットフォームという特徴があり、広く使用されるソリューションとなっています。この記事では、WebSocket と JavaScript を使用してオンライン音声認識システムを実装する方法を紹介します。

WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー WebSocket と JavaScript: リアルタイム監視システムを実装するための主要テクノロジー Dec 17, 2023 pm 05:30 PM

WebSocketとJavaScript:リアルタイム監視システムを実現するためのキーテクノロジー はじめに: インターネット技術の急速な発展に伴い、リアルタイム監視システムは様々な分野で広く利用されています。リアルタイム監視を実現するための重要なテクノロジーの 1 つは、WebSocket と JavaScript の組み合わせです。この記事では、リアルタイム監視システムにおける WebSocket と JavaScript のアプリケーションを紹介し、コード例を示し、その実装原理を詳しく説明します。 1.WebSocketテクノロジー

JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 JavaScript と WebSocket を使用してリアルタイムのオンライン注文システムを実装する方法 Dec 17, 2023 pm 12:09 PM

JavaScript と WebSocket を使用してリアルタイム オンライン注文システムを実装する方法の紹介: インターネットの普及とテクノロジーの進歩に伴い、ますます多くのレストランがオンライン注文サービスを提供し始めています。リアルタイムのオンライン注文システムを実装するには、JavaScript と WebSocket テクノロジを使用できます。 WebSocket は、TCP プロトコルをベースとした全二重通信プロトコルで、クライアントとサーバー間のリアルタイム双方向通信を実現します。リアルタイムオンラインオーダーシステムにおいて、ユーザーが料理を選択して注文するとき

WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 WebSocketとJavaScriptを使ったオンライン予約システムの実装方法 Dec 17, 2023 am 09:39 AM

WebSocket と JavaScript を使用してオンライン予約システムを実装する方法 今日のデジタル時代では、ますます多くの企業やサービスがオンライン予約機能を提供する必要があります。効率的かつリアルタイムのオンライン予約システムを実装することが重要です。この記事では、WebSocket と JavaScript を使用してオンライン予約システムを実装する方法と、具体的なコード例を紹介します。 1. WebSocket とは何ですか? WebSocket は、単一の TCP 接続における全二重方式です。

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 Dec 17, 2023 pm 05:13 PM

JavaScript と WebSocket: 効率的なリアルタイム天気予報システムの構築 はじめに: 今日、天気予報の精度は日常生活と意思決定にとって非常に重要です。テクノロジーの発展に伴い、リアルタイムで気象データを取得することで、より正確で信頼性の高い天気予報を提供できるようになりました。この記事では、JavaScript と WebSocket テクノロジを使用して効率的なリアルタイム天気予報システムを構築する方法を学びます。この記事では、具体的なコード例を通じて実装プロセスを説明します。私たちは

簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 簡単な JavaScript チュートリアル: HTTP ステータス コードを取得する方法 Jan 05, 2024 pm 06:08 PM

JavaScript チュートリアル: HTTP ステータス コードを取得する方法、特定のコード例が必要です 序文: Web 開発では、サーバーとのデータ対話が頻繁に発生します。サーバーと通信するとき、多くの場合、返された HTTP ステータス コードを取得して操作が成功したかどうかを判断し、さまざまなステータス コードに基づいて対応する処理を実行する必要があります。この記事では、JavaScript を使用して HTTP ステータス コードを取得する方法を説明し、いくつかの実用的なコード例を示します。 XMLHttpRequestの使用

JavaScriptでinsertBeforeを使用する方法 JavaScriptでinsertBeforeを使用する方法 Nov 24, 2023 am 11:56 AM

使用法: JavaScript では、insertBefore() メソッドを使用して、DOM ツリーに新しいノードを挿入します。このメソッドには、挿入される新しいノードと参照ノード (つまり、新しいノードが挿入されるノード) の 2 つのパラメータが必要です。

JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 JavaScript と WebSocket: 効率的なリアルタイム画像処理システムの構築 Dec 17, 2023 am 08:41 AM

JavaScript は Web 開発で広く使用されているプログラミング言語であり、WebSocket はリアルタイム通信に使用されるネットワーク プロトコルです。 2 つの強力な機能を組み合わせることで、効率的なリアルタイム画像処理システムを構築できます。この記事では、JavaScript と WebSocket を使用してこのシステムを実装する方法と、具体的なコード例を紹介します。まず、リアルタイム画像処理システムの要件と目標を明確にする必要があります。リアルタイムの画像データを収集できるカメラ デバイスがあるとします。

See all articles