2012-05-01 7 views
1

編集コメント:は異なるスレッドのため

詳細は以下をお読み
<script type="text/javascript"> 
    var disqus_developer = 1; 
    var disqus_identifier = "@Model.UniqueThreadIdentifier"; <--- HERE 
    var disqus_shortname = 'foo'; 

    /* * * 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> 

:私には、明示的であることと述べたにもかかわらずディスカスコメントスレッド識別子として、現在のページのURLを使用しているようです。


Disqusは、一意の識別子を持つ「ページ」を識別できると言います。

この特定のページには約10の項目があり、私は各項目に個人的なDisqusディスカッションスレッドを持たせたいと思います。 @UniqueThreadIdentifier私はディスカスは、適切なスレッドをロードさせるために使用しているものをしていることを

@foreach (var strong in Model.StrongAgainst) 
{ 
    <div class="pick">   
      <div class="actions"> 
       <a href="#modalDialogue" data-toggle="modal" 
        id="@strong.UniqueThreadIdentifier" class="btn btn-comment"> 
        <i class="icon-comment"></i> 
        999 
       </a> 
      </div> 
     </div> 

    </div> 
} 

は、だからここにロードされる実際のページです。

次に、その同じHTMLビューで、私がのUniqueIdentifierを使用して、適切なディスカスの設定とHTMLでPartialViewを返し、このJavascriptのライン、持っている:それは100%であることが確認さだここまで

<script type="text/javascript" language="javascript"> 
    $(document).ready(function() { 
     $(document).on("click", "#strong-against .pick .data .actions .btn-comment", function() { 
      var commentUniqueVar = $(this).attr("id"); 
      $.ajax({ 
       url: '/Counterpicks/GetCommentThread', 
       data: { uniqueidentifier: commentUniqueVar }, 
       success: function (data) { 
        $('#strongAgainstCommentModal').html(data); 
        alert("Finished loading."); 
       } 
      }); 
     }); 
    }); 
</script> 

とアップ正しい値がHTMLにロードされています。ここで

はPartialViewです:私は正しい値と強く型付けされたモデルを使用してdisqus_identifierの設定方法

<div class="modal-body">  
    <div id="disqus_thread"> 
    </div> 
    <script type="text/javascript"> 
     var disqus_developer = 1; 
     var disqus_identifier = "@Model.UniqueThreadIdentifier"; 
     var disqus_shortname = 'foobar'; 

     /* * * 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> 
    <noscript> 
     Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments 
      powered by Disqus.</a></noscript> 
    <a href="http://disqus.com" class="dsq-brlink">blog comments powered by <span class="logo-disqus"> 
     Disqus</span></a>  
</div> 

注意してください。

私の推測では、そのような変数を宣言すると、グローバルに作成されますか? (私は思う?)そして、Disqueのjavascriptライブラリは、常に私がそれに割り当てた最初の値を使用するつもりです。正しい?

正しい識別子をDisqusのJavaScriptライブラリに適切に読み込むにはどうすればよいですか?

答えて

0

識別子でできることは、複数のURLに同じスレッドを表示することですが、新しい識別子だけを使用して同じURLに複数のスレッドを表示することはできません(これはよくある誤解です)。ここでは、文書化され、Disqus.Resetと呼ばれるAJAXとのスレッドを再ロードするための方法を開発した:http://docs.disqus.com/help/85/

あなたはまた、Disqus.Resetせずに、それをハックすることができ、そしてそれは、この記事で実証ます:http://collaborable.com/blog/disqus-jquery-hack-awesome-ux

関連する問題