Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.03.2012, 07:08
Интересующийся
Отправить личное сообщение для iskiz Посмотреть профиль Найти все сообщения от iskiz
 
Регистрация: 03.11.2011
Сообщений: 10

Получение количества комментариев из сервиса cackle.ru
Здравствуйте посетители форума.
Есть такой опенИД сервис комментариев как "cackle.ru"

Я заметил у них такой вот способ получения количества комментариев из новости:

<script src="http://cackle.ru/widget/2865/countComments?callback=?&amp;chan=ссылка на страницу сайта" type="text/javascript"></script>


Я вставил этот код в краткую новость. Но там есть такая загвоздка - если одновременно делается более 11 запросов, а кратких новостей больше на странице, то отдает ошибку 503. Вот тут мне и пришла мысль сделать вывод скрипта по случайному таймауту.

У меня получился вот такой код:

setTimeout(function(){
var script = document.createElement('script');
script.src = "http://cackle.ru/widget/2865/countComments?callback=?&amp;chan=ссылка на страницу сайта";
document.getElementById("comment").appendChild(script);
}, Math.floor(Math.random()*2000));


Но в консоли браузера я теперь вижу ошибку: "Resource interpreted as Script but transferred with MIME type text/html"

Подскажите что не так? Или может я вообще не с той стороны подхожу к этому вопросу? Спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 13.03.2012, 10:46
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

script.type = "text/javascript";

и mime-type у файла со скриптом выставьте
Ответить с цитированием
  #3 (permalink)  
Старый 13.03.2012, 16:34
Интересующийся
Отправить личное сообщение для iskiz Посмотреть профиль Найти все сообщения от iskiz
 
Регистрация: 03.11.2011
Сообщений: 10

Сообщение от melky Посмотреть сообщение
script.type = "text/javascript";

и mime-type у файла со скриптом выставьте
Сделал так:
setTimeout(function(){
var script = document.createElement('script');
script.src = "http://cackle.ru/widget/2865/countComments?callback=?&amp;chan=ссылка на страницу.html";
script.type = "text/javascript";
document.getElementById("comment").appendChild(script);
}, Math.floor(Math.random()*2000));


Но ошибка та же. Видимо ошибка из-за того, что путь скрипта заканчивается на .html.
Подскажите пожалуйста что делать в этом случае? Спасибо.

Последний раз редактировалось iskiz, 13.03.2012 в 17:04.
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2012, 17:31
Аватар для Раед
''
Отправить личное сообщение для Раед Посмотреть профиль Найти все сообщения от Раед
 
Регистрация: 11.12.2011
Сообщений: 636

Сообщение от iskiz
Видимо ошибка из-за того, что путь скрипта заканчивается на .html.
вряд ли, может это у них там что с заголовками не так
Ответить с цитированием
  #5 (permalink)  
Старый 13.03.2012, 17:43
Интересующийся
Отправить личное сообщение для iskiz Посмотреть профиль Найти все сообщения от iskiz
 
Регистрация: 03.11.2011
Сообщений: 10

Я вроде понял в чем ошибка. У меня на странице много div с id=comment и все собранные скрипты вставляются в первый div. Подскажите как сделать, чтобы скрипт вставлялся в тот див, в котором он сейчас находится? Спасибо
Ответить с цитированием
  #6 (permalink)  
Старый 13.03.2012, 17:50
Профессор
Отправить личное сообщение для nikita.mmf Посмотреть профиль Найти все сообщения от nikita.mmf
 
Регистрация: 01.02.2010
Сообщений: 364

как вариант
<script>
(function (){}(
var scriptList = document.getElementsByTagName("script");
var lastScript = scriptList[ script.length - 1 ];
var container = lastScript.parentNode;
while ( container && container.id != 'comment' ) {
    container = container.parentNode;
}
setTimeout(function(){
    var script = document.createElement('script');
    script.src = "http://cackle.ru/widget/2865/countComments?callback=?&amp;chan=ссылка на страницу.html";
    script.type = "text/javascript";
    container .appendChild(script);
}, Math.floor(Math.random()*2000));

))();
</script>
Ответить с цитированием
  #7 (permalink)  
Старый 13.03.2012, 18:14
Интересующийся
Отправить личное сообщение для iskiz Посмотреть профиль Найти все сообщения от iskiz
 
Регистрация: 03.11.2011
Сообщений: 10

C добавлением в нужное место разобрался. Осталось решить дело с ошибкой: "Resource interpreted as Script but transferred with MIME type text/html"

Если скрипт сделать нижним способом, то нет вышеуказанной ошибки. Но я не могу понять как его вставить в нушное место . Почему-то через ".append" не выходит.
setTimeout(function(){
    var code = "<scr"+"ipt src='http://cackle.ru/widget/2865/countComments?callback=?&amp;chan=ссылка на страницу.html' type='text/javascript'>;</scr"+"ipt>";
    $("span").append( $("code") );
    }, Math.floor(Math.random()*2000));

Подскажите варианты как устранить ошибку с MIME-TYPE или как второй код вставить? Спасибо.

Последний раз редактировалось iskiz, 13.03.2012 в 20:16.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск