Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 02.11.2017, 11:54   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
Смех [РЕШЕНО] Вывод в блок div с помощью JS

Доброго времени суток!

Не знаю правильно ли я выбрал тему но вопрос мой связан больше с JS.

Значится так есть у меня два блока div menu и content

Код:

<script language="JavaScript" type="text/javascript">
 
var req;
 
function processReqChange() {
    if (req.readyState == 4){      
        if (req.status == 200){
            document.getElementById('content').innerHTML=req.responseText;      
        };        
    };
};
 
function loadXMLDoc(url) {  
    if (window.XMLHttpRequest) {        
        req = new XMLHttpRequest();        
        req.onreadystatechange = processReqChange;        
        req.open("GET", url, true);        
        req.send(null);    
    } else if (window.ActiveXObject) {        
        req = new ActiveXObject("Microsoft.XMLHTTP");        
        if (req) {            
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);    
            req.send();         
        };   
    };
};
 
function getFile(url){
    loadXMLDoc(url);   
};    
 
</script>


<div id="menu">

<a href="javascript:void(0);" onclick="getFile('1.php')">1</a>
<a href="javascript:void(0);" onclick="getFile('2.php')">2</a>
<a href="javascript:void(0);" onclick="getFile('3.php')">3</a>

</div>
<div id="content">

Какое-то содержимое

</div>
Так вот когда я жму на ссылку в меню то содержимое страницы отображается в блоке div content

А вот собственно сама суть вопроса :

Если на какой то странице есть код который использует JavaScript

1.php
Код:

<script>
    alert("Test");
<script>
То этот скрипт не отрабатывает вообще не как ... Как можно сделать что бы JS заработал в моем случае???
"Я не волшебник, я только учусь"

Последний раз редактировалось s88s; 02.11.2017 в 18:11.
s88s вне форума Ответить с цитированием
Старый 02.11.2017, 12:11   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

на StackOverflow про это пишут так
Код:
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
    var myDiv = document.getElementById('divExample');
    myDiv.innerHTML = xmlhttp.responseText;

    var myScripts = myDiv.getElementsByTagName("script");
    if (myScripts.length > 0) {
        eval(myScripts[0].innerHTML);
    }
}
...
попробуйте.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 13:14   #3
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
на StackOverflow про это пишут так
Код:
if(xmlhttp.readyState==4 && xmlhttp.status==200)
{
    var myDiv = document.getElementById('divExample');
    myDiv.innerHTML = xmlhttp.responseText;

    var myScripts = myDiv.getElementsByTagName("script");
    if (myScripts.length > 0) {
        eval(myScripts[0].innerHTML);
    }
}
...
попробуйте.
Прошу прощения ... А куда этот скрипт нужно воткнуть? я просто с JS не очень дружу
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 02.11.2017, 13:46   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от s88s Посмотреть сообщение
Код:
function processReqChange() {
    if (req.readyState == 4){      
        if (req.status == 200){
            document.getElementById('content').innerHTML=req.responseText;      
        };        
    };
};

Код:
function processReqChange() {
  if(xmlhttp.readyState==4 && xmlhttp.status==200)
  {
            document.getElementById('content').innerHTML=req.responseText;      
            var myDiv = document.getElementById('content');
            myDiv.innerHTML = req.responseText;

            var myScripts = myDiv.getElementsByTagName("script");
            if (myScripts.length > 0) {
                        eval(myScripts[0].innerHTML);
            }
   };
};

p.s.
Цитата:
Сообщение от s88s Посмотреть сообщение
<script>
alert("Test");
<script>
завершающий тег должен быть
Код:
</script>
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 15:01   #5
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
p.s.


завершающий тег должен быть
Код:
</script>
Да да это я тут опечатался просто сори ... просто в промежутки от работы тут писал =)

По поводу замены части кода ... я уже это делал так сказать пытался сделать методом тыка и не чего не работает
"Я не волшебник, я только учусь"

Последний раз редактировалось s88s; 02.11.2017 в 15:10.
s88s вне форума Ответить с цитированием
Старый 02.11.2017, 15:30   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от s88s Посмотреть сообщение
я уже это делал так сказать пытался сделать методом тыка и не чего не работает
ну что я могу сказать?..
Отладка Вам в помощь.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 15:41   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

так. во-первых, попробуйте исправленный код (я забыл поменять имя переменной xmlhttp на ваше req)

Код:
function processReqChange() {
  if(req.readyState==4 && req.status==200)
  {
            document.getElementById('content').innerHTML=req.responseText;      
            var myDiv = document.getElementById('content');
            myDiv.innerHTML = req.responseText;

            var myScripts = myDiv.getElementsByTagName("script");
            if (myScripts.length > 0) {
                        eval(myScripts[0].innerHTML);
            }
   };
};
во-вторых, я запустил ваш код, положил на сервер файл 2.php такого вида:
PHP код:
<?php
?>
<script>
    alert("script from ajax (2.php)");
</script>
<?php

echo 'New Content';

?>
и у меня всё сработало.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 15:46   #8
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
ну что я могу сказать?..
Отладка Вам в помощь.
Дело в том если что тот кусок кода который я заменил при нем ссылка нормально все отрабатывает то есть открывается в том блоке div в котором нужно ... а вот если я заменяю на Ваш то ссылка уже не открывается вообще. Что нет так

Код:

<script language="JavaScript" type="text/javascript">
 
var req;
 
function processReqChange() {
  if(xmlhttp.readyState==4 && xmlhttp.status==200)
  {
            document.getElementById('content').innerHTML=req.responseText;      
            var myDiv = document.getElementById('content');
            myDiv.innerHTML = req.responseText;

            var myScripts = myDiv.getElementsByTagName("script");
            if (myScripts.length > 0) {
                        eval(myScripts[0].innerHTML);
            };
   };
};
 
function loadXMLDoc(url) {  
    if (window.XMLHttpRequest) {        
        req = new XMLHttpRequest();        
        req.onreadystatechange = processReqChange;        
        req.open("GET", url, true);        
        req.send(null);    
    } else if (window.ActiveXObject) {        
        req = new ActiveXObject("Microsoft.XMLHTTP");        
        if (req) {            
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);    
            req.send();         
        };   
    };
};
 
function getFile(url){
    loadXMLDoc(url);   
};    
 
</script>
а вот ссылка сама

Код:

<a href="javascript:void(0);" onclick="getFile('1.php')">Страница 1</a>
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 02.11.2017, 15:49   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от s88s Посмотреть сообщение
if(xmlhttp.readyState==4 && xmlhttp.status==200)
эту строчку надо исправить.
см. пост выше.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 02.11.2017, 15:59   #10
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
эту строчку надо исправить.
см. пост выше.
Уже исправил спасибо за помошь теперь сижу смотрю в чем проблема у меня не хочет работать =(

Ваш пример отрабатывается в полном объеме


Спасибо Вам за помощь !!!
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено]: Как прикрепить вложенный div к верху родительского элемента div? Женя32 HTML и CSS 2 29.09.2016 13:24
[РЕШЕНО]: плавающий блок Vzlom HTML и CSS 9 10.11.2015 12:13
[РЕШЕНО]: Смещение Div antonb770 HTML и CSS 3 27.04.2015 09:54
Прототипирование с помощью DIV naximuz HTML и CSS 1 15.10.2014 15:02
три столбца с помощью div wall66 HTML и CSS 7 17.12.2009 17:41