2

我有一个基于 Javascript 和 php 的评级系统。在每一页上显示结果“X票(moyenne X)”。X 是数字,“moyenne”表示“平均符号”。

我希望 javascript 添加微数据信息。源代码应显示如下内容:<span itemprop="reviewCount">X</span> (Moyenne <span itemprop="ratingValue">X</span>)

可能吗 ?你能帮帮我吗?

我认为我必须改变的是这一行:$(widget).find('.total_votes').text( votes + ' votes (Moyenne ' + exact + ')' );

这是我的 JS:

<script>
$(document).ready(function() {
    $('.rate_widget').each(function(i) {
        var widget = this;
        var out_data = {
            widget_id : $(widget).attr('id'),
            fetch: 1
        };
        $.post(
            '../php/ratings.php',
            out_data,
            function(INFO) {
            $(widget).data( 'fsr', INFO );
                set_votes(widget);
            },
            'json'
        );
    });

    $('.ratings_stars').hover(
        function() {
            $(this).prevAll().andSelf().addClass('ratings_over');
            $(this).nextAll().removeClass('ratings_vote'); 
        },
        function() {
            $(this).prevAll().andSelf().removeClass('ratings_over');
            set_votes($(this).parent());
        }
    );

    $('.ratings_stars').bind('click', function() {
        var star = this;
        var widget = $(this).parent();
        var clicked_data = {
            clicked_on : $(star).attr('class'),
            widget_id : $(star).parent().attr('id')
        };
        $.post(
            '../php/ratings.php',
            clicked_data,
            function(INFO) {
                widget.data( 'fsr', INFO );
                set_votes(widget);
        },
            'json'
        ); 
    });
});

function set_votes(widget) {
    var avg = $(widget).data('fsr').whole_avg;
    var votes = $(widget).data('fsr').number_votes;
    var exact = $(widget).data('fsr').dec_avg;
    window.console && console.log('and now in set_votes, it thinks the fsr is ' + $(widget).data('fsr').number_votes);
    $(widget).find('.star_' + avg).prevAll().andSelf().addClass('ratings_vote');
    $(widget).find('.star_' + avg).nextAll().removeClass('ratings_vote'); 
    $(widget).find('.total_votes').text( votes + ' votes (Moyenne ' + exact + ')' );
}
</script>
4

2 回答 2

4

我的理解是,如果通过 Javascript 添加信息,Google 和其他微数据消费者将不会获取这些信息。我认为它需要出现在实际的 HTML 标记中。

谷歌在各种支持页面上声明,爬虫只能看到文本浏览器可见的内容,或者关闭 Javascript 的浏览器;我假设涉及微数据时没有什么不同。例如,请参见此处此处

于 2012-08-12T16:41:30.083 回答
0

只有 Opera n FF 支持 MicroData JS。

<span itemprop="reviewCount">X</span> (Moyenne <span itemprop="ratingValue">X</span>)

这是你的 JS 代码

var span = document.createElement("span");
span.itemProp = "reviewCount";
span.src = "http://example.org/example.jpg";
span.itemValue = X;

var span1 = document.createElement("span");
span1.itemProp = "ratingValue";
span1.src = "http://example.org/example.jpg";
span1.itemValue = X;
于 2012-08-16T09:58:48.037 回答