默认缩略图不显示

时间:2014-03-03 22:56:59

标签: javascript

我找到了一个与Blogger一起使用的脚本,我根据自己的需要对其进行了修改。它应该通过抓住帖子中的第一张图片来显示帖子的缩略图。该脚本有效,将显示帖子的缩略图,没有错误。但是,如果帖子中没有图像,则脚本不会显示默认缩略图。相反,它会在Chrome控制台中引发错误:> Uncaught SyntaxError: Unexpected token ILL

这就是我所拥有的:

            <!-- large thumbnail on homepage -->
            <b:if cond='data:blog.pageType == &quot;index&quot;'>
              <b:if cond='data:post.isFirstPost'>
                <script type="text/javascript">
                    //<![CDATA[
                    function bp_thumbnail_resize(image_url)
                    {
                        var image_size=320;
                        var show_default_thumbnail=true;
                        var default_thumbnail="http://4.bp.blogspot.com/-BD9oqMTSB5s/UzhXikZyTmI/AAAAAAAAawY/pa9RvkRXzyY/s320/default-post-image.png";
                        if(show_default_thumbnail == true && image_url == "") image_url= default_thumbnail;
                        image_tag='<div style="background: url('+image_url.replace('/s72-c/','/s'+image_size+'-c/')+'); background-size: cover;" class="post-thumb"></div>';
                        if(image_url!="") return image_tag; else return "";
                    }
                    //]]>
                    </script>
              </b:if>
                <script type="text/javascript">
                    document.write(bp_thumbnail_resize("<data:post.thumbnailUrl/>"));
                </script>
            </b:if>

Chrome控制台说问题是:<data:post.thumbnailUrl/>,但正如我所说,如果帖子中有图片,它可以正常工作。只有在尝试显示默认图像时才会出现此问题。

如何解决这个问题?我甚至没有看到问题。如果帖子中没有图像,也许有更好的方法来显示默认图像?

2 个答案:

答案 0 :(得分:1)

因为您在功能的最后添加了if(image_url!="") return image_tag; else return "";

BTW,使用<b:if cond><b:else/>伪标签是不是更好? 下面我附上更好的解决方案:

        <!-- large thumbnail on homepage -->
        <b:if cond='data:blog.pageType == &quot;index&quot;'>
          <b:if cond='data:post.isFirstPost'>
            <script type="text/javascript">
                //<![CDATA[
                function bp_thumbnail_resize(image_url)
                {
                    var image_size=320;
                    image_tag='<div style="background: url('+image_url.replace('/s72-c/','/s'+image_size+'-c/')+'); background-size: cover;" class="post-thumb"></div>';
                }
                //]]>
                </script>
          </b:if>
            <b:if cond='data:post.thumbnailUrl'>
    <script type="text/javascript">
                document.write(bp_thumbnail_resize("<data:post.thumbnailUrl/>"));
            </script>
    <b:else/>
        <div style="background: url(http://4.bp.blogspot.com/-BD9oqMTSB5s/UzhXikZyTmI/AAAAAAAAawY/pa9RvkRXzyY/s320/default-post-image.png); background-size: cover;" class="post-thumb"></div>
    </b:if>
        </b:if>

答案 1 :(得分:1)

删除此代码

if(show_default_thumbnail == true && image_url == "") image_url= default_thumbnail;
image_tag='<div style="background: url('+image_url.replace('/s72-c/','/s'+image_size+'-c/')+'); background-size: cover;" class="post-thumb"></div>';
if(image_url!="") return image_tag; else return "";

随着这个改变

    if(show_default_thumbnail == true) {
        if (image_url == "") image_url = default_thumbnail;
        image_tag='<div style="background: url('+image_url.replace('/s72-c/','/s'+image_size+'-c/')+'); background-size: cover;" class="post-thumb"></div>';
    }
    return image_tag;