我们有替代文本,alt
属性,用于img
HTML 中的标签,当图像没有出现时会显示出来。我也尝试过使用标签iframe
。
<iframe src="www.abc.com" alt="Web site is not avaialable">
src=""
但是在给出时没有出现替代文本。只是想知道如果src
没有给出,我是否可以通过任何其他方式实现替代文本?
虽然不是“最干净”的解决方案,但另一种选择是在 CSS 中使用 position 和 z-index 来“隐藏” iframe
. 这将为您提供真正 alt 文本的所有元数据优势,而无需编写任何复杂的脚本。
如果您只是希望它作为占位符在iframe
加载完成之前显示,这也很好。
<iframe> 元素不支持 alt 属性,但它支持 longdesc。尽管如此,HTML 规范并没有规定浏览器如何处理长描述(或替代)文本。保证任何特定行为的唯一方法是使用 JavaScript。这是一个使用 jQuery 的未经测试的示例:
// Not tested
$('iframe').each(function() {
if ($(this).attr('href') == '') {
// Do something with $(this).attr('longdesc')
}
});
由于我的第一次尝试误解了你的问题,让我们试试这个:
<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>
这将读取任何没有 src 属性或具有空白值的 src 属性的 iframe 的“alt”标记值,并将 alt 文本写入该 iframe 的正文。
使用 Javascript 或 jQuery协助将元素写入子 iframe
我不知道以任何直接的方式从 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>
使用带有您的 alt 信息的图像作为包含相关 iframe 的 div 的背景怎么样?
或者,更好的是:
您应该考虑使用带有您的 alt 信息的图像作为包含相关 iframe 的 div 的背景。这一点,再加上一些定位,你就在那里……
想一想,这是我在 iframe 中的广告没有加载的情况下显示备用广告的方法......