Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.10.2008, 15:27
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Ajax. Полноценная подгрузка страниц, содержащих CSS и JS.
Добрый день.
Я в JS новичек, поэтому прошу Вас сделайте мне скидку на мои слабые знания в этой сфере.
Помогите пожалуйста разобраться с проблемой на примере простого скрипта:

Имеются 3 файла.

index.html
<html>
<link href="style.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="start_ajax.js"></script>

<div id="Area"></div>
<a href="java script: start_Area();">Пуск</a>
</html>


start_ajax.js
var url_Area = ("test.html");

function loadArea(method, url_Area) { 
    reqArea = new XMLHttpRequest(); 
    reqArea.onreadystatechange = processReqArea; 
    reqArea.open(method, url_Area, true); 
    reqArea.send(null); } 

function processReqArea() { 
   if(reqArea.readyState == 4) { 
    if(reqArea.status == 200) {getArea(reqArea.responseText);}
    } 
}

function start_Area() { 
    loadArea( "get", url_Area );} 

function getArea( number ) { 
  var contentsArea = document.getElementById( "Area" ); 
  contentsArea.innerHTML = number;  
}


test.html
<link href="style_test.css" type="text/css" rel="stylesheet">
<script type="text/javascript" src="test.js">
super_test(); // Из подгруженного test.js
alert("УРА!!! Получилось!!!");
</script>
<div id="test"><font color="#FFFF00">Я теперь супер-фанат AJAX-a!!!</font></div>


Как сделать так, чтобы test.html (аля любой другой файл) полноценно выполнялся ?
Помогите доработать мой start_ajax.js
В <iframe> грузить не годится, нужно чтобы в <div>.
Сторонние библиотеки (типа fullAjax и т.д.) ради одной затеи использовать не хочу,
знаю, что все это можно реализовать в нескольких строках.
зы. Нужно чтоб скрипт работал хотябы в IE.
Ответить с цитированием
  #2 (permalink)  
Старый 29.10.2008, 15:50
Аватар для Snipe
Профессор
Отправить личное сообщение для Snipe Посмотреть профиль Найти все сообщения от Snipe
 
Регистрация: 06.05.2008
Сообщений: 765

Коллеги, а если отнестись к test.html как к xml и разобрать его как xml?
Или должен быть соответствующий заголовок?

брр.., зачем так?
Цитата:
var url_Area = ("test.html");

Последний раз редактировалось Snipe, 29.10.2008 в 15:54.
Ответить с цитированием
  #3 (permalink)  
Старый 29.10.2008, 16:45
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Сообщение от Snipe Посмотреть сообщение
брр.., зачем так?
Это просто для примера.

Конечно я передаю url функцией.
Ответить с цитированием
  #4 (permalink)  
Старый 29.10.2008, 18:45
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Код в тегах <script> добавленный на страницу в innerHTML какого-либо элемента не будет выполняться. Вам придется "искать" в полученном ответе все элементы <script> и выполнять их содержание функцией eval(), в внешние файлы подключать через DOM.
Ответить с цитированием
  #5 (permalink)  
Старый 30.10.2008, 10:46
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Сообщение от Андрей Параничев Посмотреть сообщение
Код в тегах <script> добавленный на страницу в innerHTML какого-либо элемента не будет выполняться. Вам придется "искать" в полученном ответе все элементы <script> и выполнять их содержание функцией eval(), в внешние файлы подключать через DOM.
Если бы я еще знал, как это реализовать все.

Ну хорошо, бог с ним с JS а как CSS подстегнуть?
Ответить с цитированием
  #6 (permalink)  
Старый 30.10.2008, 22:54
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Alex22,
Во многих случаях - точно так же, как и с внешними скриптами.

Для решения вашей проблемы я все-таки посоветовал бы использовать готовое решение, потому что в случае AJAH (Async JavaScript and HTML) нужно учитывать несколько ньюансов (внешние стили\скрипты, тег <script>), что будет сложновато для новичка.

Или вы можете убрать из ответа все скрипты и дополнительные стили. Т.е. подключить их все в "родительском" документе (через HTML), а асинхронно загружать с сервера HTML разметку без "проблемных" элементов.
Ответить с цитированием
  #7 (permalink)  
Старый 05.11.2008, 23:53
Новичок на форуме
Отправить личное сообщение для Alex22 Посмотреть профиль Найти все сообщения от Alex22
 
Регистрация: 29.10.2008
Сообщений: 7

Цитата:
Или вы можете убрать из ответа все скрипты и дополнительные стили. Т.е. подключить их все в "родительском" документе (через HTML), а асинхронно загружать с сервера HTML разметку без "проблемных" элементов.
Спасибо, пришлось так и сделать.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ajax запрос с подгружемным js HelpeR AJAX и COMET 1 27.10.2008 12:44