ユーザーの場所に基づいてjavascriptファイルを自動ロードするスクリプトを作成しました。他のローダーと同様に、<script>
要素を作成し、src
属性を設定して<head>
に追加します。次に、onload
とonreadystatechanged
などのイベントを聞き、ファイルによって公開されている値が存在するかどうかを確認します。これは機能します。無効なjavascriptファイルの自動ロード
無効なクロスオリジンURL "http://fail_on_purpose"が入力された場合、私のISPはHTMLを返します(別のアドレスでブラウザを再ロードするようブラウザに指示します)。私はonload
イベントでこれを捕まえることができますが、それは遅すぎます。 HTMLは既に<script>
タグ内のページに挿入されています。これにより、ブラウザ(少なくともfirefox)はSyntaxError
例外を発行します。
私ができることは、問題のある要素をDOMから削除することです。しかし、これが他のブラウザで問題を引き起こすかどうかはわかりませんので、エラーは一切ないようにしたいと思います。
有効なjavascriptファイルを確認してページに挿入する最も良い方法は何ですか?
更新:
HEADを発行するか、ファイルは/が有効で存在するかどうかを確認するための要求をGET、原因ブラウザで「クロスオリジン」の保護には動作しません。私はCDNにアクセスできないので、修正不可能な問題です。
try-catchの中で '$ .get()'を試しましたか? –
@SumitSahay '$ .get()'はjQueryです。質問は 'javascript'でタグ付けされています。また、AJAXリクエストからjavascriptを追加できるかどうかはわかりません。 – Twifty
できることは、有効なJSファイルをロードすることだけです。それ以外の場合は、まずAJAXを使用してその存在を確認できます。 –