[解決済み] iframe srcの読み込みに失敗した場合のエラーをキャッチする。Error :-"Refused to display 'http://www.google.co.in/' in a frame..."
質問
私は
Knockout.js
を使用して、iframe をバインドしています。
src
タグをバインドします(これはユーザーごとに設定可能です)。
ここで、ユーザーが http://www.google.com (私はそれがiframeでロードされません知っている、私は-veシナリオのためにそれを使用している理由です)と、それはIFrameで表示する必要があります。 しかし、それはエラーをスローします。
表示を拒否された ' http://www.google.co.in/ をフレーム内に表示することを拒否しました。 X-Frame-Options'を'SAMEORIGIN'に設定したためです。
私はIframeのために次のコードを持っています:-。
<iframe class="iframe" id="iframe" data-bind="attr: {src: externalAppUrl, height: iframeheight}">
<p>Hi, This website does not supports IFrame</p>
</iframe>
私が欲しいのは、URLの読み込みに失敗した場合です。私は表示したい カスタムメッセージ . ここからフィドル
では、onloadとonerrorを次のように使用すると:-。
<iframe id="browse" style="width:100%;height:100%" onload="alert('Done')" onerror="alert('Failed')"></iframe>
w3schools.comの読み込みはうまくいくのですが、google.comではうまくいきません。
次に: - 私はそれを関数として作成し、私が私のフィドルで行ったようにしようとすると、それは動作しません。
<iframe id="browse" style="width:100%;height:100%" onload="load" onerror="error"></iframe>
どのように実行させ、エラーを捕捉すればいいのかわかりません。
編集: - 私は見た が読み込まれなかったり、読み込まれた場合、関数を呼び出したい。 の質問をstackoverflowで見ましたが、iframeで読み込み可能なサイトではエラーが表示されます。
また、調べたところ Stackoverflowのiframeをロードイベント時に ありがとうございます!
どのように解決するのですか?
クライアント側からは、このようなことはできません。 同一生成元ポリシー が設定されているためです。 iFrame からは、幅や高さなどの基本的なプロパティ以外の多くの情報を得ることはできません。
また、googleはレスポンスヘッダーに' X-フレーム-オプション をSAMEORIGINに設定しています。
たとえgoogleにajaxで呼び出したとしても、ブラウザがSAME ORIGINポリシーを適用しているため、レスポンスを検査することはできません。
そのため、唯一の選択肢は、サーバーからリクエストを行い、IFrameでサイトを表示できるかどうかを確認することです。
つまり、サーバー上で...あなたのウェブアプリは www.google.com にリクエストを行い、X-Frame-Options のヘッダー引数があるかどうかを確認するためにレスポンスを検査します。 それが存在する場合、IFrame はエラーになることが分かっています。
関連
-
[解決済み] Microsoft JSONの日付はどのようにフォーマットするのですか?
-
[解決済み] jQueryのSELECT要素で特定のオプションを選択するにはどうすればよいですか?
-
[解決済み] jQueryでチェックボックスの値を取得する
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
-
[解決済み] jQueryでPUT/DELETEリクエストを送信する方法は?
-
[解決済み] 既存の非順序型リストにリストアイテムを追加する方法
-
[解決済み] jQueryで複数のCSS属性を定義するには?
-
[解決済み] 動的に生成された要素でクリックイベントが動作しない [duplicate]
-
[解決済み] jQueryを使用して配列から特定の値を削除する方法
-
[解決済み] jQueryを使用して文字列から最後の文字を削除する方法は?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] jQueryのpreventDefault()が発動しない
-
[解決済み] ユーザーがEnterキーを押してフォームを送信できないようにする
-
[解決済み] jQuery に何かを実行する前にすべての画像の読み込みを待つように指示する公式な方法
-
[解決済み] jQueryでチェックボックスの値を取得する
-
[解決済み] jQueryを使って「Please Wait, Loading...」というアニメーションを作成するにはどうすればよいですか?
-
[解決済み] jQueryでPUT/DELETEリクエストを送信する方法は?
-
[解決済み] jQueryでフォームフィールドをクリアする
-
[解決済み] jQueryでloading spinnerを表示するには?
-
[解決済み] jQueryで、ある要素を他の要素に対して相対的に配置するには?
-
[解決済み】jQueryで入力不可属性をトグルする。