我需要在disqus表单获得更新后执行一些重新计算.一条新评论,错误信息仅举几例.本质上任何导致Disqus iframe垂直扩展的事件.检查了API,但没有发现任何公共事件.似乎事件不是公开可访问的atm.所以第一个问题是 - Disqus是否有任何公共事件要附加?
第二个是 - 如果我无法附加来自Disqus的事件我想知道MutationEvent会不会为我考虑一下Disqus内容是否在iFrame中?
我正在为一个网站开发一个Android应用程序.该网站支持Disqus评论服务.我想在我的应用程序中支持相同的功能.我从Disqus文档获得了API,但我还不清楚如何将它们集成到我的应用程序中.请帮我理解实施.是否有人将Disqus评论服务整合到他们的Android应用中?
我正在使用Python和Django登录Disqus.管理员已经确认该帐户已启用SSO并且他们的调试工具确认我的登录令牌是正确的..但是我的配置似乎被忽略..登录按钮没有被替换等等..
以下是JS Disqus实现的示例..
var disqus_shortname = 'outfit418alpha';
var disqus_config = function() {
this.page.remote_auth_s3 = 'eyJ1c2VybmFtZSI6ICJkaXNxdXMiLCAiaWQiOiA1OTEsICJlbWFpbCI6ICJkaXNxdXNAb3V0Zml0NDE4LmNvbSJ9 577222fb9c6d5e03238fb70d29ac1104469e1e85 1390561160';
this.page.api_key = 'jkNAtL6ivcDNjDBbl9RFMy3prUSypfTto1IRlrsaMFXqFauGQlQQHAwOo8R8bRlG';
this.sso = {
url: '/profile/login/',
logout: '/profile/logout/',
}
}
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
Run Code Online (Sandbox Code Playgroud)
谁能指出我在哪里出错?
我正在尝试在我的离子应用程序中实现disqus提交.我知道我必须在域上托管它,我认为我已经正确配置了它.任何援助都将受到欢迎
这是我的app.js中离子应用程序的代码
$scope.showComments = function () {
$scope.currentView = "comments";
//loadComments(params["shortname"], params["url"], params["title"], params["identifier"]);
//
var disqus_title = "Venue 1";
var disqus_identifier = '/venue/' + $stateParams.id;
var disqus_url = 'liverpool.li/venue/' + $stateParams.id;
var url = "http://liverpool.li/app/disqus.html?";
$scope.url = url + "shortname=liverpoolli&url=" + encodeURIComponent(disqus_url) +
"&title=" + encodeURIComponent(disqus_title) + "&identifier=" + encodeURIComponent(disqus_identifier);
$scope.url = $sce.trustAsResourceUrl($scope.url);
};
$scope.$on("$destroy", function () {
if ($scope.lastScriptElm && $scope.lastScriptElm.parentNode) {
$scope.lastScriptElm.parentNode.removeChild($scope.lastScriptElm);
$scope.lastScriptElm = null;
}
});
Run Code Online (Sandbox Code Playgroud)
它指向的页面(disqus.html)位于我的域中
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> …Run Code Online (Sandbox Code Playgroud) 我正在尝试将底部有Disqus评论的文章转换为AMP.要做到这一点,我使用的是<amp-iframe/>:
<div id="disqus_thread">
<amp-iframe
src="https://disqus.com/embed/comments/?https&base=default&version=11a9d09102788744769550f3928faf15&f=<<DISQUS ID GOES HERE>>&t_u=<<DISQUS SITE URL GOES HERE>>&s_o=default"
sandbox="allow-same-origin allow-forms allow-modals allow-scripts allow-popups"
layout="responsive"
frameborder="0"
width="600" height="500">
</amp-iframe>
</div>
Run Code Online (Sandbox Code Playgroud)
iframe加载,似乎加载了所有脚本依赖项,但没有显示任何内容.如果您检查iframe的内容,Disqus会打印一条消息,指出Disqus无法加载.我不知道如何从这里调试它.有什么我想念的,或者我应该以不同的方式接近它?
此外,像Disqus这样的评论提供方式是由插件确定的任意高度.所以我可能无法在iframe上设置固定的高度.我需要做些什么才能使其正常工作?
我试着在我的页面中加载带有ajax的Disqus,我会解释.我有一个页面,我有jqrusel,有不同的图像,每个都有它的评论.
所以,当我点击其中一张图片时,我已经完成了这段代码:
$.get("/sets/comentarios",{set_id:set_id},function(data){
$("#componet_comentarios").html(data);
Run Code Online (Sandbox Code Playgroud)
这个网址加载:
var disqus_identifier = 'votar-<?= $id; ?>';
var disqus_url = 'www.mitrendy.com/votar/<?= $id; ?>';
// Remove the old script if it's found
oldDsq = document.getElementById('MitrendyComentDisqus');
if(oldDsq) {
(document.getElementsByTagName('head')[0] ||
document.getElementsByTagName('body')[0]).removeChild(oldDsq);
}
(function() {
var dsq = document.createElement('script');
dsq.type = 'text/javascript';
dsq.async = true;
dsq.id = "MitrendyComentDisqus-<?= $id; ?>";
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
Run Code Online (Sandbox Code Playgroud)
但永远不要刷新评论.后来我在disqus的官方页面中看到:
DISQUS.reset({
reload: true,
config: function () {
this.page.identifier = "newidentifier";
this.page.url = "http://example.com/#!newthread";
}
});
Run Code Online (Sandbox Code Playgroud)
但它是一样的,当我试图用ajax加载评论时,永远不要刷新它.
任何的想法 …
我正在使用以下代码在通过HTTPS加载的页面上加载Disqus,如本答案所示.
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_shortname = 'our-shortname';
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'https://' + disqus_shortname + '.disqus.com/embed.js?https';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
Run Code Online (Sandbox Code Playgroud)
请注意,我已将embed.js的请求更改为https而不是http,并且我已添加?https到请求的末尾,我认为应该强制使用HTTPS.
初始请求按计划通过HTTPS进行,但是它通过HTTP发出了一个辅助请求,Chrome很讨厌(我得到红色十字架挂锁图标).
来自Chrome控制台:
The page at https://our-website.com/blog-post-name ran insecure content from http://juggler.services.disqus.com/event.js?thread=635675380&forum=our-shortname...[long query string]
Run Code Online (Sandbox Code Playgroud)
这是让Disqus在所有请求中使用ssl的正确方法,还是我错过了一步?
谢谢.
我从一个旧系统得到了一堆评论,我已成功导入到disqus中.现在我需要将它们连接到新系统中.这样做应该就像正确设置disqus_identifier一样简单.
这令人沮丧,因为评论在disqus管理面板中可见,但我找不到在disqus管理面板中获取给定评论的disqus_identifier的方法.有什么建议?
我看到一些jekyll博客使用disqus作为评论,评论部分不会加载,直到你滚动到页面底部.
我怎么处理这个?
我尝试过这样的事情:
<div id="disqus_thread"></div>
<div id="disqus_loader" style="text-align: center">
<button onclick="load_disqus()">Load Disqus Comments</button>
<script>
function load_disqus()
{
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = "http://[YOUR-DISQUS-SHORTNAME].disqus.com/embed.js";
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
var ldr = document.getElementById('disqus_loader');
ldr.parentNode.removeChild(ldr);
}
</script>
</div>
Run Code Online (Sandbox Code Playgroud)
单击按钮以加载disqus.但我想知道当我滚动到页面底部时如何加载它.
我正在尝试使用Disqus api,我需要运行一些修改Disqus评论主题的javascript代码.
如何在Disqus线程加载后运行javascript代码?