最新のJavaScriptWeb開発ワークフローでは、npmパッケージを介してJavaScriptをインストールするのが非常に一般的です。
ただし、外部JavaScriptファイルを含める必要がある場合もあり、最新のツールではこれが少し難しくなる可能性があります。
特に、Wistiaのビデオを自分のサイトに含める必要がありました。ざっと見てみると、すべてが思ったよりもかなり複雑に見えました。
Wistiaは、次のHTMLスニペットを埋め込みます。
<script src="https://fast.wistia.com/embed/medias/VIDEOURL.jsonp" async></script><script src="https://fast.wistia.com/assets/external/E-v1.js" async></script><div class="wistia_responsive_padding" style="padding:56.25% 0 0 0;position:relative;"><div class="wistia_responsive_wrapper" style="height:100%;left:0;position:absolute;top:0;width:100%;"><div class="wistia_embed wistia_async_VIDEOURL seo=false videoFoam=true" style="height:100%;position:relative;width:100%"><div class="wistia_swatch" style="height:100%;left:0;opacity:0;overflow:hidden;position:absolute;top:0;transition:opacity 200ms;width:100%;"><img src="https://fast.wistia.com/embed/medias/VIDEOURL/swatch" style="filter:blur(5px);height:100%;object-fit:contain;width:100%;" alt="" aria-hidden="true" onload="this.parentNode.style.opacity=1;" /></div></div></div></div>
「通常の」HTMLサイトでは、おそらく私が通常行うようにHugoで構築されているので、非常に単純です。
このコードを自分のページに追加するだけです。
しかし、ReactコンポーネントであるGatsbyページでは?
私はいくつかのプラグインを見ましたが、誰も私が望んでいたことを本当にしませんでした。
解決策はおそらく少し「ハッキー」ですが、魅力のように機能し、何が起こっているのかを自分で制御できると感じています。
HTMLコードをJSXとして追加し、すべてのHTML属性を適切に変換しました。class -> className
、aria-hidden -> ariaHidden
、およびスタイル-次のようなツールを使用しますhttps://magic.reactjs.net/htmltojsx.htmそれを速くするために。
次に、このコードをに追加しましたgatsby-browser.js
ページの読み込み時に、必要なスクリプトを追加するファイル:
const addScript = url => {
const script = document.createElement("script")
script.src = url
script.async = true
document.body.appendChild(script)
}
export const onClientEntry = () => {
window.onload = () => {
addScript(“https://fast.wistia.com/embed/medias/9rvl8vgrzg.jsonp”)
addScript(“https://fast.wistia.com/assets/external/E-v1.js”)
}
}
私の無料ダウンロードJavaScriptビギナーズハンドブック
その他のjsチュートリアル:
- JavaScriptで避けるべきこと(悪い部分)
- JavaScriptでの延期と約束(+ Ember.jsの例)
- JavaScriptを使用してサーバーにファイルをアップロードする方法
- JavaScriptコーディングスタイル
- JavaScript配列の紹介
- JavaScriptプログラミング言語の紹介
- 完全なECMAScript2015-2019ガイド
- JavaScriptの約束を理解する
- JavaScriptの字句構造
- JavaScriptタイプ
- JavaScript変数
- サンプルWebアプリのアイデアのリスト
- JavaScriptを使用した関数型プログラミングの概要
- AsyncとAwaitを備えた最新の非同期JavaScript
- JavaScriptのループとスコープ
- マップJavaScriptデータ構造
- JavaScriptデータ構造の設定
- JavaScriptテンプレートリテラルのガイド
- JavaScriptを学ぶためのロードマップ
- JavaScript式
- JavaScriptタイマーを発見する
- JavaScriptイベントの説明
- JavaScriptループ
- map、filter、reduce、findを使用してJavaScriptループを記述します
- JavaScriptイベントループ
- JavaScript関数
- JavaScript用語集
- JavaScriptクロージャの説明
- JavaScriptの矢印関数のチュートリアル
- JavaScript正規表現のガイド
- JavaScriptで文字列に部分文字列が含まれているかどうかを確認する方法
- JavaScriptで配列からアイテムを削除する方法
- JavaScriptオブジェクトのクローンを作成する方法
- Introduction to Unicode and UTF-8
- JavaScriptのUnicode
- JavaScriptで文字列の最初の文字を大文字にする方法
- JavaScriptで数値を通貨値としてフォーマットする方法
- JavaScriptで文字列を数値に変換する方法
- これはJavaScriptで
- JavaScriptで現在のタイムスタンプを取得する方法
- JavaScriptの厳密なモード
- JavaScript即時呼び出し関数式(IIFE)
- JavaScriptを使用して別のWebページにリダイレクトする方法
- JavaScriptオブジェクトからプロパティを削除する方法
- JavaScriptで配列にアイテムを追加する方法
- JavaScriptオブジェクトのプロパティが未定義かどうかを確認する方法
- ESモジュールの紹介
- CommonJSの紹介
- JavaScript非同期プログラミングとコールバック
- JavaScriptで文字列のすべての出現を置き換える方法
- 最新のJavaScript構文のクイックリファレンスガイド
- JavaScriptで数値の先行ゼロをトリミングする方法
- JavaScriptオブジェクトを検査する方法
- JavaScriptの日付に関する最も信頼のおけるガイド
- Moment.jsチュートリアル
- JavaScriptのセミコロン
- JavaScript算術演算子
- JavaScriptMathオブジェクト
- JavaScriptでランダムで一意の文字列を生成する
- JavaScript関数をスリープ状態にする方法
- JavaScriptのプロトタイプの継承
- JavaScriptの例外
- JavaScriptクラスの使用方法
- JavaScriptクックブック
- JavaScriptでの引用
- JavaScriptでメールアドレスを検証する方法
- JavaScript配列内のオブジェクトのセットの一意のプロパティを取得する方法
- JavaScriptで文字列が別の文字列で始まるかどうかを確認する方法
- JavaScriptで複数行の文字列を作成する方法
- ES6ガイド
- JavaScriptで現在のURLを取得する方法
- ES2016ガイド
- JavaScriptの値で新しい配列を初期化する方法
- ES2017ガイド
- ES2018ガイド
- Array.prototype.map()でAsyncとAwaitを使用する方法
- 非同期vs同期コード
- JavaScriptで2つの数値の間に乱数を生成する方法
- HTML CanvasAPIチュートリアル
- JavaScriptのfor-ofループで反復のインデックスを取得する方法
- シングルページアプリケーションとは何ですか?
- WebAssemblyの紹介
- JSONの概要
- JSONPガイド
- Should you use or learn jQuery in 2020?
- プレーンJavaScriptを使用してDOM要素を非表示にする方法
- JavaScriptで2つのオブジェクトをマージする方法
- JavaScript配列を空にする方法
- JavaScriptでURLをエンコードする方法
- JavaScriptでデフォルトのパラメータ値を設定する方法
- JavaScriptでオブジェクトの配列をプロパティ値で並べ替える方法
- JavaScriptオブジェクトのプロパティの数を数える方法
- JavaScriptでcall()とapply()
- WebRTCライブラリであるPeerJSの紹介
- RestとSpreadを使用してオブジェクトと配列を操作する
- JavaScriptでオブジェクトと配列を破棄する
- JavaScriptをデバッグするための決定的なガイド
- TypeScriptガイド
- JavaScriptでオブジェクトのメソッドを動的に選択する
- 未定義をJavaScriptに渡す即時呼び出し関数式
- 緩く型付けされた言語と強く型付けされた言語
- JavaScriptを使用してDOM要素のスタイルを設定する方法
- JavaScriptでのキャスト
- JavaScriptジェネレーターチュートリアル
- node_modulesフォルダーのサイズは問題ではありません。それは特権です
- JavaScriptでモジュールをインポートする際の予期しない識別子エラーを解決する方法
- JavaScriptでオブジェクトのすべてのメソッドを一覧表示する方法
- 文字列replace()メソッド
- 文字列search()メソッド
- 小さなJavaScriptスニペットを実行する方法
- ES2019ガイド
- 文字列charAt()メソッド
- 文字列charCodeAt()メソッド
- 文字列codePointAt()メソッド
- 文字列concat()メソッド
- 文字列endsWith()メソッド
- 文字列includes()メソッド
- 文字列indexOf()メソッド
- 文字列lastIndexOf()メソッド
- 文字列localeCompare()メソッド
- 文字列match()メソッド
- 文字列normalize()メソッド
- 文字列padEnd()メソッド
- 文字列padStart()メソッド
- 文字列repeat()メソッド
- 文字列slice()メソッド
- 文字列split()メソッド
- 文字列startsWith()メソッド
- String substring()メソッド
- 文字列toLocaleLowerCase()メソッド
- 文字列toLocaleUpperCase()メソッド
- 文字列toLowerCase()メソッド
- String toString()メソッド
- 文字列toUpperCase()メソッド
- 文字列trim()メソッド
- 文字列trimEnd()メソッド
- 文字列trimStart()メソッド
- JavaScriptでのメモ化
- 文字列valueOf()メソッド
- JavaScriptリファレンス:文字列
- 数値isInteger()メソッド
- 数値isNaN()メソッド
- 数値isSafeInteger()メソッド
- Number parseFloat()メソッド
- Number parseInt()メソッド
- Number toString()メソッド
- Number valueOf()メソッド
- Number toPrecision()メソッド
- Number toExponential()メソッド
- Number toLocaleString()メソッド
- Number toFixed()メソッド
- Number isFinite()メソッド
- JavaScriptリファレンス:番号
- JavaScriptプロパティ記述子
- オブジェクトassign()メソッド
- オブジェクトcreate()メソッド
- オブジェクトdefineProperties()メソッド
- オブジェクトdefineProperty()メソッド
- オブジェクトentries()メソッド
- オブジェクトfreeze()メソッド
- オブジェクトのgetOwnPropertyDescriptor()メソッド
- オブジェクトgetOwnPropertyDescriptors()メソッド
- オブジェクトのgetOwnPropertyNames()メソッド
- オブジェクトgetOwnPropertySymbols()メソッド
- オブジェクトのgetPrototypeOf()メソッド
- オブジェクトis()メソッド
- オブジェクトisExtensible()メソッド
- オブジェクトisFrozen()メソッド
- オブジェクトisSealed()メソッド
- オブジェクトkeys()メソッド
- オブジェクトpreventExtensions()メソッド
- オブジェクトseal()メソッド
- オブジェクトsetPrototypeOf()メソッド
- オブジェクトvalues()メソッド
- オブジェクトhasOwnProperty()メソッド
- オブジェクトisPrototypeOf()メソッド
- オブジェクトpropertyIsEnumerable()メソッド
- Object toLocaleString()メソッド
- オブジェクトtoString()メソッド
- オブジェクトvalueOf()メソッド
- JavaScriptリファレンス:オブジェクト
- JavaScript代入演算子
- JavaScriptの国際化
- JavaScripttypeof演算子
- JavaScriptの新しい演算子
- JavaScript比較演算子
- JavaScript演算子の優先順位ルール
- 演算子のJavaScriptインスタンス
- JavaScriptステートメント
- JavaScriptスコープ
- JavaScript型変換(キャスト)
- JavaScriptの等式演算子
- JavaScript if / else条件付き
- JavaScriptSwitch条件付き
- JavaScript削除演算子
- JavaScript関数パラメーター
- JavaScriptスプレッド演算子
- JavaScriptの戻り値
- JavaScript論理演算子
- JavaScript三項演算子
- JavaScript再帰
- JavaScriptオブジェクトのプロパティ
- JavaScriptエラーオブジェクト
- JavaScriptグローバルオブジェクト
- JavaScript filter()関数
- JavaScript map()関数
- JavaScriptのreduce()関数
- JavaScriptの `in`演算子
- JavaScript演算子
- JavaScriptでCSSプロパティの値を取得する方法
- JavaScriptの複数の要素にイベントリスナーを追加する方法
- JavaScriptプライベートクラスフィールド
- JavaScriptで日付値で配列を並べ替える方法
- JavaScriptパブリッククラスフィールド
- JavaScriptシンボル
- JavaScriptbcryptライブラリの使用方法
- オブジェクトの破棄を使用するときにフィールドの名前を変更する方法
- TypeScriptを使用せずにJavaScriptで型をチェックする方法
- JavaScript配列に特定の値が含まれているかどうかを確認する方法
- 二重否定演算子とは何ですか! JavaScriptで行いますか?
- JavaScriptの比較で使用する必要がある等しい演算子はどれですか? == vs ===
- JavaScriptはまだ学ぶ価値がありますか?
- JavaScriptで非同期関数の結果を返す方法
- JavaScriptでオブジェクトが空かどうかを確認する方法
- JavaScriptでforループから抜け出す方法
- JavaScriptで特定のインデックスの配列にアイテムを追加する方法
- JavaScriptオブジェクトのプロトタイプを変更すべきでない理由
- JavaScriptでletとvarを使用することの違いは何ですか?
- JavaScript関数をアクティブ化するために使用されるリンク
- JavaScriptで2つの文字列を結合する方法
- JavaScriptで2つの配列を結合する方法
- JavaScriptの値が配列であるかどうかを確認するにはどうすればよいですか?
- JavaScriptで配列の最後の要素を取得するにはどうすればよいですか?
- Axiosを使用してurlencodedデータを送信する方法
- JavaScriptを使用して明日の日付を取得する方法
- JavaScriptを使用して昨日の日付を取得する方法
- JavaScriptの日付から月の名前を取得する方法
- JavaScriptで2つの日付が同じ日であるかどうかを確認する方法
- JavaScriptで日付が過去の日を参照しているかどうかを確認する方法
- JavaScriptでラベル付けされたステートメント
- JavaScriptで2つ以上のプロミスが解決するのを待つ方法
- JavaScriptで2つの日付の間の日数を取得する方法
- Fetchを使用してファイルをアップロードする方法
- JavaScriptで日付をフォーマットする方法
- JavaScriptでオブジェクトのプロパティを反復処理する方法
- JavaScriptで2つの日付の間の日数を計算する方法
- ESモジュールでトップレベルのawaitを使用する方法
- JavaScriptの動的インポート
- JavaScriptオプションのチェーン
- JavaScriptで文字列内の空白を置き換える方法
- JavaScript Nullish Coalescing
- JavaScriptで配列をフラット化する方法
- JavaScriptのこの10年
- Axiosを使用して認証ヘッダーを送信する方法
- JavaScriptのキーワードと予約語のリスト
- JavaScriptで配列を文字列に変換する方法
- すべてのnode_modulesフォルダーのコンテンツを削除する方法
- JavaScript配列から重複を削除する方法
- JavaScriptでLetvs Const
- さまざまなJavaScriptライブラリでの同じPOSTAPI呼び出し
- JSで配列の最初のn個のアイテムを取得する方法
- JSで配列を複数の等しい部分に分割する方法
- JavaScriptでループを遅くする方法
- HTMLキャンバスに画像をロードする方法
- JavaScriptで文字列を単語にカットする方法
- JavaScriptで配列を半分に分割する方法
- HTMLキャンバスにテキストを書き込む方法
- JavaScriptで文字列の最後の文字を削除する方法
- JavaScriptで文字列の最初の文字を削除する方法
- TypeErrorを修正する方法:オブジェクト '#&lt; Object&gt;'の読み取り専用プロパティ 'exports'に割り当てることはできませんエラー
- 終了インテントポップアップを作成する方法
- 要素が別の要素の子孫であるかどうかを確認する方法
- すべてのAxiosリクエストに資格情報を強制する方法
- JavaScriptの「関数ではありません」エラーを解決する方法
- ギャツビー、ファビコンを変更する方法
- Gatsbyを使用して外部JSファイルをロードする
- JavaScriptを使用してダークモードを検出する方法
- 小包、「regeneratorRuntimeが定義されていません」エラーを修正する方法
- AdblockerがJavaScriptで使用されているかどうかを検出する方法
- TypeScriptの型によるオブジェクトの破壊
- Denoハンドブック:Denoの簡潔な紹介🦕
- JavaScriptを使用してパスまたはURLの最後のセグメントを取得する方法
- JavaScript配列の要素をシャッフルする方法
- JavaScriptオブジェクトにキーが存在するかどうかを確認する方法
- イベントバブリングとイベントキャプチャ
- event.stopPropagation vs event.preventDefault()vs.DOMイベントでfalseを返す
- JavaScriptのプリミティブ型とオブジェクト
- JavaScriptで、値がどのタイプであるかをどのように判断できますか?
- JavaScriptの関数から複数の値を返す方法
- JavaScriptの矢印関数と通常の関数
- オブジェクトのプロパティの値にアクセスするには、どのような方法がありますか?
- JavaScriptのnullとundefinedの違いは何ですか?
- メソッドと関数の違いは何ですか?
- JavaScriptのループから抜け出す方法は何ですか?
- JavaScriptのfor..ofループ
- JavaScriptでのオブジェクトの破壊とは何ですか?
- JavaScriptでの巻き上げとは何ですか?
- JavaScriptでコンマをドットに変更する方法
- DOMを使用する際のタイミングの重要性
- JavaScript配列を逆にする方法
- JavaScriptで値が数値かどうかを確認する方法
- JavaScript関数で無制限のパラメーターを受け入れる方法
- JavaScriptプロキシオブジェクト
- バニラJavaScriptを使用したブラウザでのイベント委任
- JavaScriptスーパーキーワード
- XStateの概要
- 値は参照によって渡されますか、それともJavaScriptの値によって渡されますか?
- JavaScriptのカスタムイベント
- JavaScriptのカスタムエラー
- JavaScriptの名前空間
- JavaScriptでのコンマの奇妙な使用法
- JavaScriptでメソッド呼び出しを連鎖させる
- 約束の拒否を処理する方法
- JavaScriptで2つの配列要素を交換する方法
- Gitbookの使用中に「cb.applyは関数ではありません」エラーを修正する方法
- JavaScriptで配列の先頭にアイテムを追加する方法
- Gatsby、「モジュールgatsby-cli / lib / reporterが見つかりません」エラーを修正
- JavaScript配列内のアイテムのインデックスを取得する方法
- JavaScriptで空のオブジェクトをテストする方法
- JavaScriptでオブジェクトを既存の変数に分解する方法
- 配列JavaScriptデータ構造
- スタックJavaScriptデータ構造
- JavaScriptデータ構造:キュー
- JavaScriptデータ構造:セット
- JavaScriptデータ構造:辞書
- JavaScriptデータ構造:リンクリスト
- JavaScript、関数をエクスポートする方法
- JavaScript、複数の関数をエクスポートする方法
- JavaScript、関数を終了する方法
- JavaScript、文字列内の文字を見つける方法
- JavaScript、配列をフィルタリングする方法
- JavaScript、クラスを拡張する方法
- JavaScript、配列内の重複を見つける方法
- JavaScript、配列のアイテムを置き換える方法
- JavaScriptアルゴリズム:線形検索
- JavaScriptアルゴリズム:バイナリ検索
- JavaScriptアルゴリズム:選択ソート
- JavaScriptアルゴリズム:クイックソート
- JavaScriptアルゴリズム:マージソート
- JavaScriptアルゴリズム:バブルソート