0

我正在尝试查看是否可以通过 html 或使用某种 javascript 在图像的“alt”标签内添加 html 代码。我正在使用 fancybox 作为我的图片库。我正在尝试使用 fancybox 作为显示图像和图像描述的表单,添加带有样式的信息(如项目符号和中断),并添加一个按钮,将您带到不同的页面。目前我有按钮工作,但该按钮在javascript中,所以每个fancybox图像都有那个按钮和相同的url。我希望每个图像上的每个按钮都有不同的链接。

这是我目前在花式框中的图像下显示替代文本的 javascript。

$(".fancybox").fancybox({               
                padding : 0,
                beforeShow: function () {
                    this.title = $(this.element).attr('title');
                    this.title = '<h4>' + this.title + '</h4>' + '<div style="width:100%; height: 150px; overflow: auto;">' + $(this.element).parent().find('img').attr('alt') + '<a class="button button-small" href="http://www.google.com"> Sign Up </a>' + '</div>';
                },
                helpers : {
                    title : { type: 'inside' },
                }
            });

该花式框的 index.html 中的 html 是:

<li class="item-thumbs span3 design">
                                <!-- Fancybox - Gallery Enabled - Title - Full Image -->
                                <a class="hover-wrap fancybox" data-fancybox-group="gallery" title="The City" href="_include/img/work/full/image-01-full.jpg">
                                    <span class="overlay-img"></span>
                                    <span class="overlay-img-thumb font-icon-plus"></span>
                                </a>
                                <!-- Thumb Image and Description -->
                                <img src="_include/img/work/thumbs/image-01.jpg" alt="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quis elementum odio. Curabitur pellentesque, dolor vel pharetra mollis.">
                            </li>
4

1 回答 1

3

根据alt定义,属性(不是标签)是纯文本,因此无论您在其中插入什么,浏览器都会将其视为纯文本(而非标记)。如果你乱用代码,将看起来像 HTML 标记的字符串插入alt属性值,然后将它们作为标记进行解析和处理,这与其他属性的类似操作没有什么不同。

alt属性有一个明确定义的工作,当图像未显示但例如被朗读、用盲文设备呈现或显示为文本时充当图像的文本替换。因此,尝试将其用于其他目的是徒劳的。

类似的考虑适用于title属性。

要使用将被解析为 HTML 的数据,因此最好使用自定义属性,特别是data-*属性、likedata-desc或您喜欢的任何内容。它们在浏览器或搜索引擎中没有默认处理,因此可以安全地用于私人目的。

于 2013-09-17T18:09:02.427 回答