[解決済み] Javascriptを使用してCSSファイルを読み込むには?
2022-03-15 14:56:23
質問
Javascriptを使用して、CSSスタイルシートをhtmlページに取り込むことは可能でしょうか?もし可能なら、どのようにすればいいのでしょうか?
P.S. javascript は私のサイトでホストされますが、ユーザーが
<head>
タグを使用すると、私のサーバーにホストされているCSSファイルを現在のウェブページにインポートすることができるはずです。(cssファイルとjavascriptファイルの両方が私のサーバーにホストされます)。
どのように解決するのですか?
ここでは、すべてのブラウザーで動作することを期待し、それを行うための古い学校"方法を示します。理論上、あなたは
setAttribute
残念ながらIE6では一貫してサポートされていません。
var cssId = 'myCss'; // you could encode the css path itself to generate id..
if (!document.getElementById(cssId))
{
var head = document.getElementsByTagName('head')[0];
var link = document.createElement('link');
link.id = cssId;
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = 'http://website.com/css/stylesheet.css';
link.media = 'all';
head.appendChild(link);
}
この例では、CSSがすでに追加されているかどうかをチェックし、一度だけ追加するようにしています。
このコードをjavascriptファイルに記述し、エンドユーザーがjavascriptをインクルードするだけで、CSSのパスが絶対で、サーバーから読み込まれることを確認します。
バニラJS
ここでは、プレーンなJavaScriptを使って、CSSリンクを
head
要素のURLのファイル名部分に基づいています。
<script type="text/javascript">
var file = location.pathname.split( "/" ).pop();
var link = document.createElement( "link" );
link.href = file.substr( 0, file.lastIndexOf( "." ) ) + ".css";
link.type = "text/css";
link.rel = "stylesheet";
link.media = "screen,print";
document.getElementsByTagName( "head" )[0].appendChild( link );
</script>
を閉じる直前にコードを挿入します。
head
タグを使用すると、ページがレンダリングされる前にCSSが読み込まれます。外部のJavaScript(
.js
) ファイルを使用すると、スタイルのないコンテンツのFlash (
ファウク
)が表示されます。
関連
-
JSクロスドメインソリューション リアクト構成 リバースプロキシ
-
[解決済み】divの高さを画面の残りスペースで埋めるようにする
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScriptでタイムスタンプを取得する方法は?
-
[解決済み] CSSは常にJavascriptより優先されるべきか?
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
-
[解決済み】HTML5入力のプレースホルダの色をCSSで変更する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
親子コンポーネント通信を解決する3つのVueスロット
-
HTML+CSS+JavaScriptで簡単な三目並べゲームを作成する。
-
JavaScriptのクロージャの説明
-
Javascript Bootstrapのグリッドシステム、ナビゲーションバー、ローテーションの説明
-
vueディレクティブv-bindの使用と注意点
-
[解決済み】GETできない / Nodejsエラー
-
[解決済み】"フォームが接続されていないため、フォームの送信がキャンセルされました "というエラーの取得について
-
[解決済み】JavaScript TypeError: null のプロパティ 'style' を読み取ることができない
-
[解決済み】React - TypeError: 未定義のプロパティ 'props' を読み取ることができない。
-
[解決済み] Javascriptで<style>タグを作成するには?