JavaScript における URL オブジェクトの素晴らしい使い方

JavaScript における URL オブジェクトの素晴らしい使い方

序文

URLオブジェクトはページ側ではあまり使用されないかもしれません。一般的に、ページ側でのURLの操作のほとんどは、URLパラメータを解析することです。URLパラメータを解析するためのライブラリは数多くあります。たとえばqsや、ブラウザのネイティブURLSearchParamsなどです。

// 現在の URL が 'https://www.test.com?a=1&b=2' であると仮定します
const b = 新しい URLSearchParams(location.search);
const aParam = b.get('a'); // 1
const bParam = b.get('b'); // 2
const エントリ = [...b];
// [['a', '1'], ['b', '2']]
// qs.parse のようなオブジェクトを取得したい場合は、次のようにします。const params = Object.fromEntries(entries);
// {a: 'c'、b: '2'}

解析パラメータ

URLSearchParams を介してパラメータを解析することは、URL オブジェクトと密接に関連しているようには見えませんが、URL オブジェクトがインスタンス化された後に返されるオブジェクトを確認することができます。

const a = 新しい URL ('https://www.test.com?a=1&b=2');
// ハッシュ: ""
// ホスト: "www.test.com"
// ホスト名: "www.test.com"
// href: "https://www.test.com/?a=1b=2"
// オリジン: "https://www.test.com"
// パスワード: ""
// パス名: "/"
// ポート: ""
// プロトコル: "https:"
// 検索: "?a=1&b=2"
// 検索パラメータ: URLSearchParams {}
// ユーザー名: ""
// [[プロトタイプ]]: URL

返されたオブジェクトから、URL がインスタンス化された後、返された属性 searchParams は実際にはインスタンス化された URLSearchParams オブジェクトであることがわかります。 URLオブジェクトを介してパラメータを取得する別の方法があります。たとえば、上記の操作は次のように変更できます。

const a = 新しい URL ('https://www.test.com?a=1&b=2');
const エントリ = [...a.searchParmas];
const パラメータ = Object.fromEntries(エントリ);

// ブラウザ コンソールで、1 行 [...new URL(location.href).searchParams];

URLパラメータを変更する

パラメータを解析するために URL を使用する必要はありません。 URLSearchParams オブジェクトを使用すれば十分です。では、URL オブジェクトで他に何ができるでしょうか。実際には、URLSearchParams は設定や追加などの書き込み操作を提供すると考えられます。同時に、URL オブジェクトによって返されるプロパティを変更することもできます。URL 内のパラメータを変更して URL を変更したり、URL を生成したりすることはできますか。結局のところ、多くの場合、URL の変更は文字列操作にとどまり、これも危険であり、エラーが報告されやすいものです。

const a = 新しい URL ('https://www.test.com?a=1&b=2');
a.searchParams.set('a', '18');
a.searchParams.set('b', '14');
a.searchParams.set('c', 'テスト');
newURL = a.toString(); // https://www.test.com/?a=18&b=14&c=test
a.hash = 'ハッシュ';
newURL = a.toString(); // 'https://www.test.com/?a=18&b=14&c=test#hasha'
a.host = 'www.init.com';
newURL = a.toString(); // https://www.init.com/?a=18&b=14&c=test#hasha

要約する

URL オブジェクトは URL を操作するのに非常に便利です。単純なカプセル化により、多くのパッケージを節約できます。いくつかの回避策を使用すると、URL を逆に変更できます。このオブジェクトはブラウザでも使えますが、互換性の問題が出る可能性があります。デスクトップであれば安心して使えます(IE とは)。モバイル端末であれば、ポリフィルの設定が必要になるかもしれません。このオブジェクトはDenoでも使用できます

これで、JavaScript URL オブジェクトの素晴らしい使用法に関するこの記事は終了です。JavaScript URL オブジェクトの素晴らしい使用法に関する関連コンテンツをさらにご覧になりたい場合は、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 異なるページ間のJavaScriptデータ転送(URLパラメータ取得)
  • Springboot で URL の後の jsessionid を削除する方法
  • vue.jsは画像のURLに従って画像をダウンロードします
  • JavaScript ライブラリ urlcat URL ビルダー ライブラリ

<<:  HTML 基本構造_Powernode Java アカデミー

>>:  DockerでRedashの中国語版をデプロイしてインストールする方法の詳細な説明

推薦する

Dockerはプライベートライブラリイメージを完全に削除します

まず、インターネット上の一般的な慣行を見てみましょうデフォルトでは、プライベート ライブラリはイメー...

ブラウザの自動フォーム入力によるウェブページのスタイル損失の原因の分析と解決

バックエンドからフロントエンドまで、なんと悲劇なのでしょう。他の人の CSS を自分の jsp We...

CentOS7 systemdにカスタムシステムサービスを追加する方法

システムド: CentOS 7のサービスsystemctlスクリプトは、/usr/lib/syste...

HTMLで下線を設定するには?HTMLでテキストに下線を付ける方法

HTML で下線を引くには、以前はテキストを <u></u> タグで囲む必要...

mysql5.7 リモート アクセス設定

mysql5.7 でリモート アクセスを設定することは、ユーザーを作成して権限を付与するだけでアクセ...

大規模なウェブサイトアーキテクチャを設計・構築する際に考慮すべき10の課題

ここでは、PHP、JSP、または .NET 環境については説明しません。アーキテクチャの観点から問題...

WIN10 に複数のデータベースがインストールされている場合にコンピュータの速度低下を防ぐ方法

必要なときにサービスを有効にし、必要がないときは無効にします。データベース サービスを管理する方法:...

Linux で一般的なソフトウェアを設定する方法

新しいLinuxサーバーを入手する場合、通常は次の5つの構成を実行する必要があります。 HOSTAN...

SQL GROUP BYの詳細な説明と簡単な例

GROUP BY ステートメントは、Aggregate 関数と組み合わせて使用​​され、1 つ以上の...

Linux で環境変数 JAVA_HOME を変更/設定する方法について簡単に説明します。

1. 永久的な変更、すべてのユーザーに有効# vi /etc/プロファイル//キーボードの[Shi...

フレームセットを使用してワイドスクリーンを中央に配置するためのヒントを共有する

コードをコピーコードは次のとおりです。 <フレームセット cols="*,1280,...

LinuxにVSCodeをダウンロードしてインストールし、プログラミングを使用して現在の時刻を出力する

rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...

MySQL 外部キー設定方法の例

1. 外部キーの設定方法1. MySQL では、2 つのテーブルを関連付けるために、外部キー (FO...

実用的な基本的な Linux sed コマンドのサンプルコード

Linux ストリーム エディターは、データ センターでスクリプトを実行するのに便利な方法です。これ...

Vue.jsの機能コンポーネントに関する包括的な理解

目次序文React 関数コンポーネントVue (2.x) の機能コンポーネント🌰 例: el-tab...