Gre*_*ick 4 javascript ajax magento
我们在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>
Run Code Online (Sandbox Code Playgroud)
由于POWERREVIEWS.display.snippet被称为'文档'我认为正在发生的是AJAX负载正在发生,写入'文档'然后PowerReviews正在发生并且也被写入'文档'.由于这发生在最后,它劫持页面而不是像正常负载那样正确放置.
如果我将"文档"更改为类似内容document.getelementbyid('PWR')并添加<div id="PWR">,则该页面上不会显示该代码段.有没有办法可以将输出定位POWERREVIEWS.display.snippet到"文档"以外的其他内容,这样两个脚本就不会相互干扰?
PowerReviews实际上提供了一个有效的答案.他们建议直接使用JQuery交付方法到DIV.将它发布在这里以帮助他人.
1)将JS include插入到该节中的jquery库中(如果还没有):
Run Code Online (Sandbox Code Playgroud)<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>2)对代码段函数调用使用write:function(content)语法:
Run Code Online (Sandbox Code Playgroud)<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>