2

我根据从互联网上找到的内容编写了一个小的 jQuery 自动收录器插件。它完美地完成了它的工作,但我希望它允许 html 标签,并且我坚持使用它,因为我无法正确编写 html 标签。它只是写它们,没有别的,所以我无法创建换行符或文本。

这是代码:

(function($) {
    $.fn.Ticker = function(cont,time) {
        var conArray = cont.split(""),
            current = 0,
            elem = this;
        setInterval(function() {
            if(current < conArray.length) {
                elem.html(elem.html() + conArray[current++]);
            }
        }, time);
    };

})(jQuery);
var tickertext = $("#tickertext").html();
$(document).ready(function(){
    $("#tickto").Ticker(tickertext,50);
});

还有一个关于它的小提琴:http: //jsfiddle.net/29axW/ 如果我console.log(conArray)有这样的链接,<a href="kissa.php">moi</a>我会得到

["<", "a", " ", "h", "r", "e", "f", "=", """, "k", "i", "s", "s", "a", ".", "p", "h", "p", """, ">", "m", "o", "i", "<", "/", "a", ">"] 

但它只是简单地写为明文。所以我需要它首先解析 html 标签并在用户看到它的情况下插入它们,依此类推......

4

3 回答 3

2

这是因为浏览器一次获取标签的一个字符,因此不会将其呈现为标签。您可能需要将字符串拆分为标签和文本,然后将文本拆分为单个字符。

我会试着想一个简单的方法来做到这一点。

于 2013-03-05T18:45:25.753 回答
1

You can skip the interval if a HTML-Tag is reached... Take a look how I realized this here: https://github.com/yckart/jquery.typer.js/blob/master/jquery.typer.js#L34-L38

Here's a working example.

于 2013-03-05T18:50:01.480 回答
0

在将其发送到浏览器之前,应完成 Html 标记。否则它会像字符串一样受到威胁。

我正在考虑解决方案。您应该使用 html 树,查找嵌套的 html 标签并将文本附加到其中。这是我的小提琴,它扩展了你的。对不起,这个代码应该升级,但我展示了基本的想法。

它适用于嵌套标签(like <strong><i>text</i></strong>)和不关闭 like 的标签<br/>

说如果你需要一些额外的解释。

于 2013-03-05T19:56:20.663 回答