-1

比如下面

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

</object>

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

4

2 回答 2

0

您可以尝试使用 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 标头时,这才有效

于 2013-10-31T20:46:39.313 回答
-1

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

所以,你应该能够做到这一点:

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

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

于 2013-10-31T20:46:52.707 回答