对于HTML中的alt
标记,我们有替代文字img
属性,该标记会在图片未显示时显示。我也尝试将标记与iframe
一起使用。
<iframe src="www.abc.com" alt="Web site is not avaialable">
但是当给出src=""
时,替代文字不会出现。只是想知道我是否能以任何其他方式获得替代文本,如果没有给出src
?
答案 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 中的广告未加载的情况下显示备用广告的方法...