2013-06-17 2 views
2

Я работаю над приложением, использующим Meteor. Я пытаюсь использовать reCaptcha в одной из моих форм, а также систему комментариев Disqus на некоторых моих страницах. Но проблема в том, что ни один из них не отображается, когда я запускаю метеоритный сервер.Использование Disqus/reCaptcha в приложении Meteor

Вот пример Disqus кода, я добавляю в шаблон:

<script type="text/javascript"> 
     /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ 
     var disqus_shortname = 'HIDDENfromstackoverflow'; // required: replace example with your forum shortname 

     /* * * DON'T EDIT BELOW THIS LINE * * */ 
     (function() { 
      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); 
     })(); 
    </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">comments powered by <span class="logo-disqus">Disqus</span></a> 

Для этого, только текст «комментарии питание от Disqus» показывает на веб-странице.

Для ReCaptcha:

<noscript> 
    <iframe src="http://www.google.com/recaptcha/api/noscript?k=HiddenFromStackOverflow" 
     height="300" width="500" frameborder="0"></iframe><br> 
    <textarea name="recaptcha_challenge_field" rows="3" cols="40"> 
    </textarea> 
    <input type="hidden" name="recaptcha_response_field" 
     value="manual_challenge"> 
    </noscript> 

Интересно отметить, что ReCaptcha отображается, если я открываю мой шаблон как обычный HTML-файл в браузере

(а не через сервер Метеор.) Что мне не хватает?

+0

я думаю, что это не хорошо идея поставить js-скрипт t в шаблон. Поместите его в заголовок. – Krab

+0

, но disqus и captcha требуют, чтобы сценарий был помещен туда, где вы хотите, чтобы они отображались. –

+0

@Siddharh Gupta: вы уверены, что элементы находятся в DOM вашей сети? Попробуйте использовать какой-либо веб-инспектор (firebug в firefox и т. Д.) И посмотрите, действительно ли элементы находятся в DOM или метеор игнорирует их – Krab

ответ

2

Для этого вам необходим jquery.

общественные/disqus.js

/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */ 
     var disqus_shortname = 'HIDDENfromstackoverflow'; // required: replace example with your forum shortname 

     /* * * DON'T EDIT BELOW THIS LINE * * */ 
     (function() { 
      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); 
     })(); 

app.html

<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" > 
</head> 

<body> 
{{>captcha}} 
</body> 

<template name="captcha"> 
    {{#isolate}} 
    <div id="my-disqus"> 
     <div id="disqus_thread"></div> 
    <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">comments powered by <span class="logo-disqus">Disqus</span></a> 
    </div> 
    {{/isolate}} 
</template> 

клиент/main.js

Meteor.startup (function() { 

    $(function() { 
     var el = document.createElement("script"); 
     el.src = "/disqus.js"; 
     el.type = 'text/javascript'; 
     $("#my-disqus").prepend(el); 

    }); 

}); 
+0

Спасибо! Теперь виджет disqus работает. Но как мне заставить reCaptcha работать? –

+0

@SiddharthGupta: я думаю, что он должен работать нормально, просто удалите этот файл, потому что тогда тело этого тега отображается только в том случае, если javascript отключен, и это действительно полезно, если вы используете метеорит: D – Krab

+0

Он работает сейчас, но без стилей. Выглядит очень просто, но по крайней мере это работает! Спасибо! :) –

Смежные вопросы