Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.04.2014, 07:52
Аспирант
Отправить личное сообщение для engelard Посмотреть профиль Найти все сообщения от engelard
 
Регистрация: 23.12.2013
Сообщений: 56

Изза аякса не отображается элемент в хроме
В прошлой теме Пример простейшей подгрузки элемента. мне разьяснили как подгружать элементы с помощью аякса,все вроде как работает(кроме закрытия спойлера,спойлер не закрывается)но есть одно но,не грузятся виджеты и я не могу понять почему,перепробовал все,единственное что хоть как то помогло так это вставить в начало подгружаемых файлов строку

<script src="../../JS/jquery.min.js"></script>


после этого виджеты появились в опере,а в хроме их нету,что можно сделать?

З.Ы.вот ссылка http://historyofdota.info/link/TaT/tat.html
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2014, 16:42
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Мы не телепаты. Что за виджеты такие?
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2014, 21:20
Аспирант
Отправить личное сообщение для engelard Посмотреть профиль Найти все сообщения от engelard
 
Регистрация: 23.12.2013
Сообщений: 56

Сообщение от Erolast Посмотреть сообщение
Мы не телепаты. Что за виджеты такие?
http://vk.com/developers.php?p=Comments

в опере зайдите вконтакт,потом по той ссылке(в конце первого поста)откройте один из спойлеров.
Ответить с цитированием
  #4 (permalink)  
Старый 03.04.2014, 10:45
Аспирант
Отправить личное сообщение для engelard Посмотреть профиль Найти все сообщения от engelard
 
Регистрация: 23.12.2013
Сообщений: 56

кто разбирается в хроме подскажите пожалуйста...
Ответить с цитированием
  #5 (permalink)  
Старый 03.04.2014, 12:32
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

В консоль ошибок посмотри.
Ответить с цитированием
  #6 (permalink)  
Старый 03.04.2014, 23:02
Аспирант
Отправить личное сообщение для engelard Посмотреть профиль Найти все сообщения от engelard
 
Регистрация: 23.12.2013
Сообщений: 56

Сообщение от Erolast Посмотреть сообщение
В консоль ошибок посмотри.
посмотрел(в хроме)там только две ошибки загрузки картинок а о виджетах ничего...
Ответить с цитированием
  #7 (permalink)  
Старый 04.04.2014, 15:45
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Ты, наверное, грузишь всю конструкцию со скриптами и в колбеке вставляешь через innerHTML? Ну так ничего не выйдет, вставленные через innerHTML скрипты не запустятся. Скрипт можно вставить на страницу, но другим способом:
<script>
var newScriptBody = "alert('Test')";
var newScript = document.createElement("script");
newScript.innerHTML = newScriptBody;
document.appendChild(newScript);
</script>

Если у тебя к сайту подключен jquery, просто вставляй пришедший ответ через append:
$.post("get_VK_comments", function(response) {
  $("body").append(response);
}

В таком случае пройдет, ибо метод jQuery append распарсит ответ, поймет, что там за теги, создаст каждый элемент и вставит в страницу. Если jQuery не подключен - парсь сам. Ну либо подключай скрипты в страницу по умолчанию и не используй здесь ajax (никто не мешает все еще создавать блок для комментариев динамически).
Ответить с цитированием
  #8 (permalink)  
Старый 05.04.2014, 01:28
Аспирант
Отправить личное сообщение для engelard Посмотреть профиль Найти все сообщения от engelard
 
Регистрация: 23.12.2013
Сообщений: 56

Сообщение от Erolast Посмотреть сообщение
вставленные через innerHTML скрипты не запустятся.
нужно было дописать "в хроме",не запустятся в хроме,так как в остальных браузерах все хорошо.

Сообщение от Erolast Посмотреть сообщение
Скрипт можно вставить на страницу, но другим способом:
<script>
var newScriptBody = "alert('Test')";
var newScript = document.createElement("script");
newScript.innerHTML = newScriptBody;
document.appendChild(newScript);
</script>

Если у тебя к сайту подключен jquery, просто вставляй пришедший ответ через append:
$.post("get_VK_comments", function(response) {
  $("body").append(response);
}
я что то недопонял если чесно куда эти строки нужно вписывать,не в подгружаемый же файл,ты же сам сказал что скрипты прописаные внутри хтмл не будут работать... из твоего сообщения сложно понять что и где должно быть.
Ответить с цитированием
  #9 (permalink)  
Старый 05.04.2014, 03:18
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

var newScript = document.createElement("script");
newScript.text = "alert('Test')";
document.body.appendChild(newScript);

работает ведь
для скриптов предлагаю использовать свой загрузчик. Аяксом же передавать имя файла в удобной форме(в атрибутах, скрытых блоках и т.д) подгружать скрипт загрузчиком по событию
var newScript = document.createElement("script");
newScript.src = "http://code.jquery.com/jquery-2.0.3.min.js";
document.body.appendChild(newScript);
  if (newScript.readyState) {
                newScript.onreadystatechange = function () {
                    if (newScript.readyState == "loaded" || newScript.readyState == "complete") {
                        newScript.onreadystatechange = null;
                        callback();
                    }
                };
            } else {
                newScript.onload = function () {
                    callback();
                };
            }
  function callback() {
  alert("Loaded jQuery: " + jQuery().jquery);
  };

Последний раз редактировалось Vlasenko Fedor, 05.04.2014 в 10:12.
Ответить с цитированием
  #10 (permalink)  
Старый 05.04.2014, 09:15
Аватар для Erolast
Профессор
Отправить личное сообщение для Erolast Посмотреть профиль Найти все сообщения от Erolast
 
Регистрация: 24.09.2013
Сообщений: 1,436

Цитата:
нужно было дописать "в хроме",не запустятся в хроме,так как в остальных браузерах все хорошо.
В файрфоксе тоже не запустится. Вообще он должен запускаться только через append.

Цитата:
я что то недопонял если чесно куда эти строки нужно вписывать,не в подгружаемый же файл,ты же сам сказал что скрипты прописаные внутри хтмл не будут работать... из твоего сообщения сложно понять что и где должно быть.
Может быть, ты тогда найдешь кодера какого-нибудь, если ты это не понял?) Все просто - когда грузишь содержимое, вставляй его не через innerHTML, а через метод jQuery append. Тогда все сработает. Не знаешь, как пользоваться этим методом? Забей в гугол. Почему сработает в этом случае? Потому-что jQuery распарсит ответ, создаст соответствующие элементы и вставит их через appendChild. Скрипт, вставленный через appendChild - работает везде, вставленный через innerHTML - нет.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не отображается созданный элемент Ol'kO Events/DOM/Window 3 21.08.2013 13:01
Drag-n-Drop - перетянуть элемент Jugo ExtJS 1 10.08.2011 19:10