以下のような
<object type="text/html" data="a.html">
</object>
ファイルa.html
が存在しない場合は、空白で表示されます。別のファイルに誘導したり、404a.html
のように見つからないというテキストを表示したりできますか?
以下のような
<object type="text/html" data="a.html">
</object>
ファイルa.html
が存在しない場合は、空白で表示されます。別のファイルに誘導したり、404a.html
のように見つからないというテキストを表示したりできますか?
AJAX を使用してファイルをフェッチし、ファイルが存在するかどうかを確認し、それに応じてobject
、フェッチしたコンテンツで作成するか、エラーの場合にメッセージを配置することができます。
$.get('a.html').
done(function(data) {
$('body').append('<object type="text/html" data="a.html"></object>');
}).
fail(function() {
$('body').append("<div>file a.html doesn't exist</div>");
});
注:
ブラウザによってキャッシュされるためa.html
、オブジェクト コンテンツをロードするために別のラウンドトリップを実行することはありませんが、キャッシュから取得します。
これはa.html
、元のページと同じオリジン (プロトコル、ホスト、ポート) を共有している場合、またはサーバーがa.thml
クロス オリジン リクエスト用の特別な HTTP ヘッダーを送信している場合にのみ機能します。
まあ、w3schools が最も人気のあるリファレンス ソースではないことは知っていますが、タグは onerror イベントを含む HTML のイベント属性をサポートしていると彼らは言っています。
したがって、これを行うことができるはずです:
<object type="text/html" data="a.html" onerror=function() { alert('"a.html" not found'); }>
</object>
編集MDN で証明を見つけるのは少し難しく、3 つのリンクが必要です。 これは object が HTMLElement であること、HTMLElements がすべての GlobalEventHandlers を継承していること、およびglobalEventHandlerイベントとして onerror が含まれていることを示しています。