Javascript disqs为动态页面加载相同的注释
我有一个动态页面,可以加载不同的想法。我使用disqs进行评论,但是disqs会继续为每个想法加载相同的评论 这是网站 这是我的密码Javascript disqs为动态页面加载相同的注释,javascript,disqus,Javascript,Disqus,我有一个动态页面,可以加载不同的想法。我使用disqs进行评论,但是disqs会继续为每个想法加载相同的评论 这是网站 这是我的密码 <script type="text/javascript"> /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ if( typeof DISQUS != 'undefined' ) { DISQUS.reset({
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
if( typeof DISQUS != 'undefined' ) {
DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = '<?php echo $title; ?>';
this.page.url = 'http://tech-in.org/submitted_ideas/idea.php?id=<?php echo $idea_id; ?>';
}
});
}
var disqus_shortname = 'techinorg'; // required: replace example with your forum shortname
var disqus_identifier = '<?php echo $title; ?>';
var disqus_url = 'http://tech-in.org/submitted_ideas/idea.php?id=<?php echo $idea_id; ?>';
var disqus_title = document.getElementById('disqus_post_title').innerHTML;
var disqus_message = document.getElementById('disqus_post_message').innerHTML;
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
/***配置变量:粘贴到网页前编辑***/
如果(类型取消!=“未定义”){
重新设置({
是的,
配置:函数(){
this.page.identifier='';
this.page.url=http://tech-in.org/submitted_ideas/idea.php?id=';
}
});
}
var discus_shortname='techinorg';//必需:将示例替换为论坛短名称
风险值标识符=“”;
var discus_url='1〕http://tech-in.org/submitted_ideas/idea.php?id=';
var discus_title=document.getElementById('discus_post_title').innerHTML;
var discus_message=document.getElementById('discus_post_message').innerHTML;
/***请勿在此行下方编辑***/
(功能(){
var dsq=document.createElement('script');dsq.type='text/javascript';dsq.async=true;
dsq.src='http://'+discus_shortname+'.discus.com/embed.js';
(document.getElementsByTagName('head')[0]| | document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
请帮助解释导致错误的原因以及我能做些什么来解决它Discus根据您指定的
Discus\u标识符
决定加载哪些注释。加载不同的“想法”时,请确保提供与该想法相对应的唯一discus\u标识符。(目前还不清楚PHP脚本中$title
代表了什么,这是当前分配给discus\u identifier
的内容)看起来您的标识符不够唯一,请参阅此处的参考文档:
它说:
访问启用了Disqus的页面时,Disqus使用此标识符
确定要加载的适当注释线程。如果合适的话
找不到线程,已创建新线程。不合格标识符
保持线程和页面关联
我在一个页面上遇到了同样的问题,该页面使用AJAX以新的disks线程加载新内容。我的解决方案是将标识符和url设置为相同的值
DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = 'http://example.com/#!' + myPageID;
this.page.url = 'http://example.com/#!' + myPageID;
}});
其中myPageID是一个整数,我使用AJAX动态更新它,我最终实现了如下工作
Ajax站点[1]的论文说明了要求
使用full hashbang#设置变量this.page.identifier
和this.page.URL
代码>
令人困惑的是,上述文档中链接的示例配方
[2]没有做到这一点
参考资料:
[1]
[2] Hello Cheeken,$title是每个想法的标题。当您查看每个idea页面的来源时,您将看到Discus_标识符是不同的。这意味着标题的呈现是正确的。感谢Madmartigan,将Discus_url设置为与Discus_标识符相同已解决了此问题。感谢Jakub,我使用url作为标识符解决了此问题。但我怀疑每个想法都有自己的标题。这难道不足以让Discus使用吗?@Stanley,看起来它不够独特,有时越独特越好,再说谁在乎它是唯一标识符,你可以对它进行哈希运算,它仍然可以工作。奇怪的是,我找到的所有解决方案都不起作用,但你的,这肯定是Discus的问题,但你的评论救了我,谢谢。这导致谷歌在我的网站上抓取了数百个重复页面,使用hashbang是个坏主意。@idan shechter我同意。。。出于许多其他原因,我已经停止使用它。请注意,对于非基于服务器的安装,Disqus似乎没有任何真正的支持。有许多人对他们的提议不满意。例如。
var disqus_config = function () {
this.page.identifier = window.location.origin + '/#!' + identifier
this.page.url = window.location.origin + '/#!' + identifier
}