我们在Magento商店内使用PowerReviews作为对标准Magento评论系统的重视。我们已经为类别,产品和评论页面设置了它,并且已经有一段时间了。
最近我添加了一个模块,它将AJAX重新加载功能带到了类别页面上的过滤导航。即我选择“红色”作为过滤器,类别页面刷新,无需重新加载适当的产品。当我关闭电源评论时,这很好用。
启用Power Reviews后,AJAX开始加载,但页面变为白色,只显示PowerReviews <div>
标记。当我查看PowerReviews代码时,我想我可以看到原因:
<script type="text/javascript">
POWERREVIEWS.display.snippet(document, {
pr_page_id : '49DAF4',
pr_write_review : '/review/product/list/id/1907/category/111/#review-form',
pr_read_review : txt, pr_snippet_min_reviews : 1});
</script>
由于POWERREVIEWS.display.snippet
被称为'文档'我认为正在发生的是AJAX加载正在发生,写入'文档'然后PowerReviews正在发生,并且也被写入'文档'。由于这发生在最后,它劫持页面而不是像正常负载那样正确放置。
如果我将“文档”更改为document.getelementbyid('PWR')
并添加<div id="PWR">
,则该代码段不会显示在页面上。有没有办法可以将POWERREVIEWS.display.snippet
的输出定位到“文档”以外的其他内容,这样两个脚本就不会相互干扰?
答案 0 :(得分:8)
PowerReviews实际上提供了一个有效的答案。他们建议直接使用JQuery交付方法到DIV。将它发布在这里以帮助他人。
1)将JS include插入到该节中的jquery库中 (如果你还没有):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
2)对代码段功能使用write:function(content)语法 拨打:
<div id="pr_snippet_category_12345"> <script type="text/javascript"> POWERREVIEWS.display.snippet({ write : function(content) { $('div#pr_snippet_category_12345').append(content); } }, { pr_page_id : '12345', pr_snippet_min_reviews : '1' }) </script> </div>