JavaScriptでクロスドメインモードとナイトモードを実装する方法
近年、インターネットの発展に伴い、Webアプリケーションの対話性がますます重要となり、フロントエンド開発の技術レベルも向上の一途をたどっています。中でも JavaScript は非常に人気のあるプログラミング言語として、Web フロントエンド開発で広く使用されています。しかし、実際のアプリケーションでは、JavaScript のクロスドメイン アクセスの問題という問題に遭遇することがよくあります。この記事では、JavaScript を使用してナイト モードを実装し、これを通じて JavaScript クロスドメインを実現するという解決策を紹介します。
1. ナイト モードとは
ナイト モードは、従来の昼間モードとは逆の黒をテーマにしたモードです。スマートフォンやパソコンなどのデバイスの普及に伴い、夜間にデバイスを使用する際の目のダメージを軽減し、電力を節約できるナイトモードの人気が高まっています。同時に、ナイトモードはユーザーに優れたユーザーエクスペリエンスを提供することもできます。
2. ナイトモードの実装
ナイトモードを実装するにはJavaScriptとCSSが必要です。
1. CSS スタイルの定義
CSS ファイルに 2 つのカラー テーマのスタイルを定義します。ここでは、「昼」と「夜」の 2 つのテーマ スタイルを定義します。それぞれ。 。
/* 日间模式样式 */ body.day { background-color: #ffffff; color: #000000; } /* 夜间模式样式 */ body.night { background-color: #000000; color: #ffffff; }
2. JavaScript コードを定義する
JavaScript では、ユーザー操作を監視し、テーマを切り替える必要があるかどうかを判断し、ページにスタイルを適用する必要があります。
// 判断是否是夜间模式,默认为日间模式 var isNight = false; // 切换主题函数 function toggleTheme() { if (isNight) { // 切换为日间模式 document.body.classList.remove("night"); document.body.classList.add("day"); isNight = false; } else { // 切换为夜间模式 document.body.classList.remove("day"); document.body.classList.add("night"); isNight = true; } } // 监听用户的操作 document.addEventListener("DOMContentLoaded", function(event) { // 判断页面是否已设置了主题 var theme = localStorage.getItem("theme"); if (theme === "night") { toggleTheme(); } // 监听按钮点击事件 var btn = document.getElementById("btn-toggle-theme"); btn.addEventListener("click", function() { // 切换主题 toggleTheme(); // 保存用户的选择 localStorage.setItem("theme", isNight ? "night" : "day"); }); });
上記のコードでは、「テーマ」項目が localStorage に存在するかどうかを確認し、項目の値を読み取ることで、ユーザーがテーマを設定したかどうかを判断します。テーマが設定されている場合は、その値に基づいて対応するスタイルに切り替えます。テーマが設定されていない場合は、デフォルトで日モードに切り替わります。
ユーザーがボタンをクリックしてテーマを切り替えると、toggleTheme 関数を呼び出してスタイルを切り替え、ユーザーの選択内容を localStorage に保存します。
3. ボタンによるテーマの切り替え
上記の JavaScript コードでは、ボタンのクリック イベントをリッスンしてテーマを切り替えます。 HTML ファイルでは、ボタン要素を追加し、それに ID 値を与える必要があります。
<button id="btn-toggle-theme">切换主题</button>
ユーザーがボタンをクリックすると、JavaScript コードがテーマを別のテーマに切り替え、localStorage に保存します。ユーザーが再度ページにアクセスすると、保存したばかりのテーマ値に基づいて、対応するスタイルに自動的に切り替わります。
3. ナイト モードを使用して JavaScript クロスドメインを実装する
実際の開発では、他の Web サイトから API データを取得するなど、異なるドメイン名のリソースにアクセスする必要があることがよくあります。ただし、ブラウザーのオリジンポリシーの制限により、JavaScript スクリプトは同じドメイン名のリソースにのみアクセスできるため、クロスドメイン機能は非常に貴重になります。
ナイト モードを使用すると、JavaScript のクロスドメイン アクセスを比較的簡単に実現することもできます。具体的な手順は次のとおりです:
1. クロスドメインにする対象 Web サイトにアクセス許可を追加します
クロスドメインにする対象 Web サイトにアクセス許可を追加する必要がありますauthorization HTTP 応答ヘッダーにより、ローカル Web サイトからのアクセスが許可されます。ここでは PHP 言語を使用して実装しています。対象の Web サイトのindex.php ファイルに次のコードを追加できます。
// 允许访问授权 header('Access-Control-Allow-Origin: http://localhost');
上記のコードでは、アクセスを許可するドメイン名を「http://localhost」として指定していますが、実際のニーズに応じて変更できます。ここでワイルドカード「*」を使用してすべてのドメイン名へのアクセスを許可することもできますが、これには特定のセキュリティリスクがあるため、運用環境での使用はお勧めできません。
2. JavaScript コードを記述してクロスドメイン アクセスを実現します
ローカル Web サイトで、次の JavaScript コードを記述するだけでクロスドメイン アクセスを実現できます。
// 获取目标数据 fetch('http://example.com/api/data').then(function(response) { return response.json(); }).then(function(data) { console.log(data); }).catch(function(error) { console.log('发生错误', error); });
上記のコードでは、クロスドメイン アクセスに ES6 の新しいフェッチ関数を使用しています。 fetch 関数は Promise オブジェクトを返し、then メソッドを呼び出すことでクロスドメイン データを取得できます。エラーが発生すると例外がスローされるため、catch メソッドを使用して例外をキャッチして処理する必要があります。
ターゲット Web サイトにアクセスすると、JavaScript コードによってローカル Web サイトのアクセス許可情報が引き継がれるため、クロスドメイン アクセスが正常に実現されます。
4. 概要
この記事では、JavaScript を使用してナイト モードを実装する方法と、ナイト モードを使用して JavaScript クロスドメイン アクセスを実装する方法を紹介します。ナイト モードを使用すると、ユーザーのエクスペリエンスが向上するだけでなく、クロスドメイン アクセスの問題も解決され、JavaScript の適用範囲が大幅に広がります。この記事があなたのお役に立てば幸いです。
以上がJavaScriptでクロスドメインモードとナイトモードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

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

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

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

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

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

ホットトピック











ReactはJSXとHTMLを組み合わせてユーザーエクスペリエンスを向上させます。 1)JSXはHTMLを埋め込み、開発をより直感的にします。 2)仮想DOMメカニズムは、パフォーマンスを最適化し、DOM操作を削減します。 3)保守性を向上させるコンポーネントベースの管理UI。 4)国家管理とイベント処理は、インタラクティブ性を高めます。

Reactは、インタラクティブなフロントエンドエクスペリエンスを構築するための好ましいツールです。 1)Reactは、コンポーネント化と仮想DOMを通じてUIの開発を簡素化します。 2)コンポーネントは、関数コンポーネントとクラスコンポーネントに分割されます。関数コンポーネントはよりシンプルで、クラスコンポーネントはより多くのライフサイクル方法を提供します。 3)Reactの作業原則は、パフォーマンスを改善するために仮想DOMおよび調整アルゴリズムに依存しています。 4)国家管理は、usestateまたはthis.stateを使用し、ComponentDidmountなどのライフサイクルメソッドが特定のロジックに使用されます。 5)基本的な使用には、コンポーネントの作成と状態の管理が含まれ、高度な使用にはカスタムフックとパフォーマンスの最適化が含まれます。 6)一般的なエラーには、不適切なステータスの更新とパフォーマンスの問題が含まれます。

Reactコンポーネントは、機能またはクラスによって定義され、UIロジックのカプセル化、およびプロップを介して入力データを受け入れることができます。 1)コンポーネントの定義:関数またはクラスを使用して、反応要素を返します。 2)レンダリングコンポーネント:Reactコールレンダリングメソッドまたは機能コンポーネントを実行します。 3)マルチプレックスコンポーネント:データをプロップに渡して、複雑なUIを構築します。コンポーネントのライフサイクルアプローチにより、ロジックをさまざまな段階で実行でき、開発効率とコードメンテナビリティが向上します。

Reactエコシステムには、状態管理ライブラリ(Reduxなど)、ルーティングライブラリ(Reactrouterなど)、UIコンポーネントライブラリ(材料-UIなど)、テストツール(JESTなど)、およびビルディングツール(Webpackなど)が含まれます。これらのツールは、開発者がアプリケーションを効率的に開発および維持し、コードの品質と開発効率を向上させるのを支援するために協力します。

Reactの利点は、その柔軟性と効率性であり、これは以下に反映されています。1)コンポーネントベースの設計により、コードの再利用性が向上します。 2)仮想DOMテクノロジーは、特に大量のデータ更新を処理する場合、パフォーマンスを最適化します。 3)リッチエコシステムは、多数のサードパーティライブラリとツールを提供します。 Reactがどのように機能し、例を使用するかを理解することにより、そのコアコンセプトとベストプラクティスをマスターして、効率的で保守可能なユーザーインターフェイスを構築できます。

Reactは、メタがユーザーインターフェイスを構築するために開発したJavaScriptライブラリであり、そのコアはコンポーネント開発と仮想DOMテクノロジーです。 1。コンポーネントと状態管理:Reactは、コンポーネント(関数またはクラス)とフック(UseStateなど)を介して状態を管理し、コードの再利用性とメンテナンスを改善します。 2。仮想DOMとパフォーマンスの最適化:仮想DOMを介して、実際のDOMを効率的に更新してパフォーマンスを向上させます。 3.ライフサイクルとフック:フック(使用効果など)は、関数コンポーネントがライフサイクルを管理し、副作用操作を実行できるようにします。 4。使用例:基本的なHelloworldコンポーネントから高度なグローバル州管理(USECONTEXTおよび

Reactは、ユーザーインターフェイスを構築するためのフロントエンドフレームワークです。バックエンドフレームワークは、サーバー側のアプリケーションを構築するために使用されます。 Reactはコンポーネントで効率的なUIアップデートを提供し、バックエンドフレームワークは完全なバックエンドサービスソリューションを提供します。テクノロジースタックを選択するときは、プロジェクトの要件、チームのスキル、およびスケーラビリティを考慮する必要があります。

Reactの未来は、究極のコンポーネント開発、パフォーマンスの最適化、および他のテクノロジースタックとの深い統合に焦点を当てます。 1)Reactは、コンポーネントの作成と管理をさらに簡素化し、究極のコンポーネント開発を促進します。 2)特に大規模なアプリケーションでは、パフォーマンスの最適化が焦点になります。 3)Reactは、開発エクスペリエンスを改善するために、GraphQLやTypeScriptなどのテクノロジーと深く統合されます。
