HTML 对象数据文件(如果未找到)

HTML Object Data file if not found

本文关键字:如果 对象 数据 文件 HTML      更新时间:2023-09-26

如下

<object type="text/html" data="a.html">
</object>

如果文件a.html不存在,则显示为空白。我可以让它指向另一个文件或显示一条文本说a.html没有找到就像 404 一样吗?

您可以

尝试使用 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>");
    });

  1. 由于浏览器将缓存a.html,因此它不会执行另一次往返来加载对象内容,而是会从缓存中获取对象内容。

  2. 仅当您的a.html与原始页面共享相同的来源(协议、主机、端口)时,这才有效,a.thml服务器为跨源请求发送特殊的 HTTP 标头

好吧,我知道w3schools不是最受欢迎的参考来源,但他们说该标签支持HTML中的事件属性,其中包括onerror事件。

因此,您应该能够执行此操作:

<object type="text/html" data="a.html" onerror=function() { alert('"a.html" not found'); }>
</object>

编辑 在 MDN 上找到证明有点困难,需要三个链接。 这表示对象是 HTMLElement,这表示 HTMLElements 继承所有 GlobalEventHandler,这包括作为 globalEventHandler 事件的 onerror。