iframe的替代文字

时间:2011-11-24 05:40:48

标签: html jsp iframe alt

对于HTML中的alt标记,我们有替代文字img属性,该标记会在图片未显示时显示。我也尝试将标记与iframe一起使用。

<iframe src="www.abc.com" alt="Web site is not avaialable">

但是当给出src=""时,替代文字不会出现。只是想知道我是否能以任何其他方式获得替代文本,如果没有给出src

5 个答案:

答案 0 :(得分:2)

&lt; iframe&gt; element不支持alt属性,但它支持longdesc。尽管如此,HTML规范并没有规定浏览器如何处理长描述(或替代)文本。保证任何特定行为的唯一方法是使用JavaScript。这是一个使用jQuery的未经测试的例子:

// Not tested
$('iframe').each(function() {
  if ($(this).attr('href') == '') {
    // Do something with $(this).attr('longdesc')
  }
});

答案 1 :(得分:2)

由于我的第一次尝试误解了你的问题,让我们试试这个:

<script>
$(function () {

    $("iframe").not(":has([src])").each(function () {

    var ifrm = this;

    ifrm = (ifrm.contentWindow) ? ifrm.contentWindow : (ifrm.contentDocument.document) ? ifrm.contentDocument.document : ifrm.contentDocument;

    ifrm.document.open();
    ifrm.document.write($(this).attr("alt"));
    ifrm.document.close();

    });

});
</script>

这将读取任何iframe的“alt”标记值,其中没有src属性或带有空值的src属性,并将alt文本写入该iframe的主体。

来自Write elements into a child iframe using Javascript or jQuery

的协助

答案 2 :(得分:2)

虽然不是&#34;最干净的&#34;解决方案,另一个选择是在CSS中使用position和z-index来隐藏&#34; iframe下的空图像。这将为您提供真正替代文本的所有元数据优势,而无需进入任何复杂的脚本。

如果您只是希望它作为占位符显示,直到iframe完成加载,这也很好。

答案 3 :(得分:1)

我不知道如何以任何直接的方式从iframe中捕获404响应,但是你可以用一些jQuery来捕获它:

<iframe id="myFrame"></iframe>

<script>
$(function () {

  $.ajax({
     url: "http://www.abc.com",
     success: function (data) {
        $("#myFrame").html(data);
     },
     error: function () {
        $("#myFrame").html("Web site is not avaialable");
     }

});
</script>

答案 4 :(得分:0)

如何使用带有 alt 信息的图像作为包含相关 iframe 的 div 的背景?

或者,更好:

您应该考虑使用带有 alt 信息的图像作为包含相关 iframe 的 div 的背景。这个,结合一些定位,你就在那里......

想想看,这就是我在 iframe 中的广告未加载的情况下显示备用广告的方法...