2010-05-21 5 views
2

Disqus place automatiquement les légendes définies sur demande. Par exemple: Ajouter un commentaireDisqus: modifier les légendes après le succès avec jQuery

J'ai essayé de changer sa valeur avec jquery sur prêt():

$('#dsq-new-post h3').text('Paticipa con tu cuenta favorita'); 

Aucun succès :(... Comment puis-je savoir quand script Disqus terminé l'analyse de la données donc je peux modifier la valeur de la légende de h3

BTW, voici l'appel de Disqus:.

(function(){ 
var dsq = document.createElement('script'); 
dsq.type = 'text/javascript'; dsq.async = true; 
dsq.src = 'http://xxxxxxxx.disqus.com/embed.js'; 
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
})(); 
+0

Avez-vous essayé .val ('nouveau texte') ou .html ('un nouveau texte ou html') – London

+0

Est-ce après une demande de paiement ajax? –

+0

@London oui, le problème est que l'instruction ready() arrive AVANT que le script disqus ne finisse d'analyser les données ... j'ai besoin d'un moyen de savoir quand cela se produit. @Nick Craver: non, simple JS. – andufo

Répondre

3

Voici la réponse andufo Il fonctionne:

$(document).ready(function() { 
    window.disqus_no_style = true; 

    $.getScript('http://sitename.disqus.com/embed.js', function() { 
    var loader = setInterval(function() { 
     if($('#disqus_thread').html().length) { 
     clearInterval(loader); 
     disqusReady(); 
     } 
    }, 1000); 
    }); 

    function disqusReady() { 
    //whatever you can imagine 
    } 
}); 

Vous pouvez commenter la ligne $ .getscript et la fin}); ainsi que window.disqus_no_style = true; ligne.

J'ai eu un problème similaire et j'ai posté cette question. Mohamed a tenté de me répondre et sa réponse n'a pas fonctionné, mais il avait posté un lien vers son code sur github et j'ai trouvé la bonne réponse.

Chrome Extension iframe dom reference disqus

https://gist.github.com/471999

+0

Salut Darin, tu veux bien m'aider aussi? C'est mon problème: http://wordpress.stackexchange.com/questions/36499/customize-disqus-wp-plugins-mark-up-with-jquery et je ne peux pas faire fonctionner votre code. – cr0z3r

+0

Je reçois une page d'erreur lorsque j'essaie de naviguer vers le lien fourni dans votre message sur cette page. Je pense que votre problème, cependant, est la priorité CSS. Vous devriez être capable de tester cela assez facilement en manipulant un attribut HTML au lieu d'un attribut CSS. Comme convertir tout H3 en H1. Si cela fonctionne, et j'en suis certain, le problème est vraiment lié à la façon dont le jeu de règles CSS applique des instructions contradictoires. – Darin

+0

Désolé, le nouveau lien est http://demo.crozer.me/era-wp/guide-of-the-week-moving-objects - J'ai effectivement essayé de manipuler le HTML, comme changer le .text() ou. html(), ou en supprimant un objet. J'ai réalisé que votre code fonctionne si j'écris directement mon code après le clearInterval (c'est-à-dire pas dans la fonction disqusReady, qui est à l'extérieur). De plus, j'ai aussi réalisé que parfois mes changements fonctionnaient, et parfois non. Cela me rend vraiment fou. Est-il possible que nous puissions discuter et que vous puissiez consulter le site en direct? – cr0z3r

1

Cette solution simple fonctionne aussi bien que le texte original apparaît d'abord, puis est remplacé par le nouveau texte, qui est à moins idéal.

function disqus_callback() { 
    $('#dsq-reply h3').text('Add Your Answer'); 
} 
Questions connexes