Альтернативный текст для фреймов - PullRequest
6 голосов
/ 24 ноября 2011

У нас есть альтернативный текст, атрибут alt для тега img в HTML, который будет отображаться, когда изображение не появляется.Я тоже пытался использовать тег с iframe.

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

Но альтернативный текст не появляется, когда дается src="".Просто хотел узнать, смогу ли я получить альтернативный текст любым другим способом, если src не указан?

Ответы [ 4 ]

2 голосов
/ 04 ноября 2015

Хотя это и не самое «чистое» решение, другим вариантом является использование позиции и z-индекса в вашем CSS, чтобы «скрыть» пустое изображение под iframe.Это даст вам все преимущества метаданных настоящего альт-текста без необходимости разбираться со сложными сценариями.

Также хорошо, если вы просто хотите, чтобы он отображался как заполнитель до тех пор, пока не будет загружена iframe.

2 голосов
/ 24 ноября 2011

Элемент

// Not tested
$('iframe').each(function() {
  if ($(this).attr('href') == '') {
    // Do something with $(this).attr('longdesc')
  }
});
2 голосов
/ 24 ноября 2011

Поскольку моя первая попытка неправильно поняла ваш вопрос, давайте попробуем это вместо этого:

<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>

Это будет считывать значение тега "alt" для любого iframe без атрибута src или атрибута src с пустым значениеми запишите альтернативный текст в тело этого iframe.

Assist из Запись элементов в дочерний iframe с использованием Javascript или jQuery

1 голос
/ 24 ноября 2011

Я не знаю способа отловить 404 ответа от iframe каким-либо простым способом, однако вы можете перехватить его с помощью некоторого 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>
...