If условие {меняем содержимого дивов}

Тема в разделе "JavaScript", создана пользователем silmarion, 16 окт 2014.

Модераторы: ZiX
  1. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Добрый день, возник такой вопрос,
    На странице если выполняется условие, необходимо запускать скрипт и менять содержимое выбранных блоков.
    Как это реализовать?
     
  2. swerwer

    swerwer Создатель

    Регистр.:
    21 окт 2012
    Сообщения:
    10
    Симпатии:
    2
    Запускать сторонний скрипт (php например)?
    Если да - то ajax в помощь.

    Типа такого:
    HTML:
    if (a == b) {
        $.ajax ({
            type : 'POST',
           url    : 'url',
           data : ({a : a, b : b}),
           success : function (result) {
               //Делаем что-то с дивами.
           }
        });
    }
     
  3. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Нет, сторонний скрипт запускать мне не нужно.

    В общем дело такое, на сайте есть что-то вроде доски объявлений, которая полностью грузится с другого ресурса (предоставляется)

    Идет она только на английском, и очень очень криво, так что менять там толком ничего не могу, вот и хочу для перевода пунктов на русский (если зашли русские пользователи)
    на ходу менять текст
    чтото вроде такого
    Код:
    $language = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
    switch ($language){
      case "ru":
    Здесь мы пускаем JAVA который будет менять в блоках англ фразы на русские предустановленные.
    <javascript>
    .....
    Меняем к примеру блок
    <div id="title">Search</div>
    На
    <div id="title">Поиск</div>
    Ну и так далее
    </javascript>
      echo "русский язык";
      preg_replace(<div class="search-controls__slider-label ng-scope">Price</div>);
      break;
    }
    
    
    Люди, или кто ссылку дайте на мануал, смена содержимого див при загрузке страницы.

    А то гугл выдает все про смену содержимого по клику, а я в скриптах практически не шарю
     
    Последнее редактирование: 16 окт 2014
  4. swerwer

    swerwer Создатель

    Регистр.:
    21 окт 2012
    Сообщения:
    10
    Симпатии:
    2
    Если проблема только в "при загрузке страницы" - то:
    HTML:
    $(document).ready(function() {
        //Если язык, полученный ранее - русский
        if (language == 'ru') {
            //Меняем текст.
            $('#title').empty();
            $('#title').append('Поиск');
        }
    });
    Это первое пришедшее в голову решение, если посидеть - то красивее сделать можно)
     
    vitbsd нравится это.
  5. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Код:
    switch ($_GET['lang'])
    {  
    case "ru": 
    ?>
    <p id="dataKeeper">Это русский детка</p>
    <script type="text/javascript">
    $(window).load(function() {
    document.getElementById('dataKeeper').style.color = 'blue'; //Эта хрень работает нормально
    document.body.innerHTML = document.body.innerHTML.replace('Call Us Today', 'Вася'); // Если раскоментировать эту строку, она меняет текст, но остальные скрипты перестают работать, может какой-то no-conflict надо дописать?
    });
    </script>
    <?
       break;
       default:
       break;
    } ?>
    
    
     
  6. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    А если половина того что заменить нужно без ид, а классами идет?

    Вот так к примеру
    Код:
    <button class="advSearch__list-term ng-binding" ng-click="advanced.active_category = feature">
      Amenities
    </button>
    [code]
    И многие идут в виде списка с одинаковыми классами (((
    в общем пока что нашел такое решение, посмотрю как будет себя вести
    Код:
    <!----------Универсальный скрипт замены----------->
    <script type="text/javascript">
    h = document.body;
    h.innerHTML = h.innerHTML.replace(/Объявление/g, "<center><font style=\"font-family:Monotype Corsiva; font-size:15pt; color:#696969;\">Копилка Мудрости</font></center>");
    h.innerHTML = h.innerHTML.replace(/Статистика форума/g, "<center>Статистика форума</center>");
    h.innerHTML = h.innerHTML.replace(/Общая статистика/g, "<center>Общая статистика</center>");
    </script>
    <!----------END Универсальный скрипт замены----------->
    
     
    Последнее редактирование: 18 окт 2014
  7. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Блин вроде все получилось с Вариантом что выше писал, а затем снова этот подключаемый скрипт с подгрузкой объявлений обломал всё, на всех страницах меняется все нормально, стоит зайти на этот поиск, текст что надо меняется, а сам скрипт перестает работать

    :eek::mad::thenks::thenks::thenks::alko::beer:

    Очень прошу помочь с этим, а то взрыв мозга с этим JS мне обеспечен

    Вот сама страничка, код пишу в самом конце страницы



    Стоит подключить код с конца страницы как сразу весь подгружаемый контент напрочь отказывается работать (кнопки, фильтрация поиска, переходы и т.п.)
    Может быть как то можно вывести строку с ошибкой чтобы написало мол тут то и тут то конфликт
    или по-другому как то...
     
    Последнее редактирование: 23 окт 2014
  8. swerwer

    swerwer Создатель

    Регистр.:
    21 окт 2012
    Сообщения:
    10
    Симпатии:
    2
    Ошибки должно показывать в отладочной панели.
    В файрфоксе ctrl+shift+K.

    Но, она, почему-то, молчит.
    Ну, кроме гугль-карт.


    Если честно, то не вижу, почему такое действие проиходит. Разве что, что-то лишнее режет при замене... Но врятли.
     
  9. silmarion

    silmarion

    Регистр.:
    21 июн 2012
    Сообщения:
    195
    Симпатии:
    19
    Такая же фигня(((
    Получается, на странице с поиском все это на странице подгружается сюда с другого сайта с помощью
    mydx2.js

    В английской версии сайта скрипт для перевода не подгружается, так что поиск и фильтры работают как обычно.
    А вот в русской лажа, для русской версии сайта я скачал себе mydx2.js и сделал поиск и замену слов, так что на

    перевод весь грузит из файла, а вот на странице с подробностями, слов для перевода в файле mydx2.js нет, так что и пришлось подключать этот скрипт
    Код:
    <script type="text/javascript">
    xxx = document.body;
    setTimeout("endPart()", 3000);
    function endPart()
    {
    xxx.innerHTML = xxx.innerHTML.replace(/Bathrooms \(Full\)<\/th>/, "Ванных<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Security<\/th>/, "Безопасность<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Governing Bodies<\/th>/, "Руководство<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Pet Restrictions<\/th>/, "Запрет на животных<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Parking<\/th>/, "Парковка<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Maintenance Fee Includes<\/th>/, "Сбор за обслуживание включает<\/th>");
    xxx.innerHTML = xxx.innerHTML.replace(/Interior<\/th>/, "Интерьер<\/th>");
    и тд.....
    }</script>
    
    :thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks::thenks:
     
    Последнее редактирование: 24 окт 2014