我找到了一个与Blogger一起使用的脚本,我根据自己的需要对其进行了修改。它应该通过抓住帖子中的第一张图片来显示帖子的缩略图。该脚本有效,将显示帖子的缩略图,没有错误。但是,如果帖子中没有图像,则脚本不会显示默认缩略图。相反,它会在Chrome控制台中引发错误:> Uncaught SyntaxError: Unexpected token ILL
这就是我所拥有的:
<!-- large thumbnail on homepage -->
<b:if cond='data:blog.pageType == "index"'>
<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/>
,但正如我所说,如果帖子中有图片,它可以正常工作。只有在尝试显示默认图像时才会出现此问题。
如何解决这个问题?我甚至没有看到问题。如果帖子中没有图像,也许有更好的方法来显示默认图像?
答案 0 :(得分:1)
因为您在功能的最后添加了if(image_url!="") return image_tag; else return "";
。
<b:if cond>
和<b:else/>
伪标签是不是更好?
下面我附上更好的解决方案:
<!-- large thumbnail on homepage -->
<b:if cond='data:blog.pageType == "index"'>
<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;