누구든지 Disqus에서 PJAX 또는 일반 #!
AJAX와 같이 올바르게 작동하게 만들었습니까?DISQUS 및 Pushstate AJAX 또는 Hashbang
는이 일을하는 사람들의 몇 가지 예를 볼 수 있습니다 :
첫 번째는 해시 뱅 스타일과 두 번째 PJAX를 사용하고 있습니다. 이제 해당 사이트를 클릭하면 Disguus에서 gravatar 아이콘이 사라지고 JavaScript 콘솔을 열면 일반적으로 DISQUS
객체의 바인딩이 해제되기 때문에 오류 및 로그 메시지가 표시됩니다. (나는 축소를 통해 난독 화되지 않은 Disqus에의 JS 찾을 수 없기 때문에 어렵다)
나는 내 자신 무작위로 해킹을 시도 :
(function() {
if (document.getElementById('my_disqus_script') && document.getElementById('disqus_thread')) {
//var ds = document.getElementById('my_disqus_script');
//(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).removeChild(ds);
alert(window.location.href);
DISQUS.reset({
reload: true,
config: function() {
this.page.identifier = 'disqus_thread';
this.page.url = window.location.href + '#!disqus_thread';
}
});
}
else if (document.getElementById('disqus_thread')){
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.id = 'my_disqus_script';
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
}
else {
var ds = document.getElementById('my_disqus_script');
if (ds)
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).removeChild(ds);
if (window['DISQUS']) {
alert('cleanup');
DISQUS.reset();
DISQUS.cleanup();
DISQUS = null;
}
}
})();
기본적으로
내가 정리 기술의 무리를 시도를 할 때 있도록 내 PJAX는 정리해야하는 새 페이지를로드하지만 항상 예외를 throw하는 null
에 바인딩 된 일부 이벤트를 가져옵니다.
iframe에 disqus를 넣을 수 있습니까? –
나는 그 일을 고려했다. 이전에 시도했지만 스크롤하는 데 문제가 있었지만 정말 열심히 시도하지는 않았습니다. –
아마 포기하고 * "여기를 클릭하여 설명을로드하십시오"* 전체 페이지를 다시로드 할 것입니다. –