Ответы пользователя по тегу JavaScript
  • Почему php не видит отсылаемый аяксом объект?

    @vshvydky
    фигня все это
    вы передаете sendUser.php?{"youIps":"1111","name":"22222"}
    А в гет ищите $_GET['ourDataSend'];
    то есть sendUser.php?ourDataSend={"youIps":"1111","name":"22222"}
    1. Посмотрите что вообще прилетает после вашего запроса в GET Эдак как - то так var_dump[$_GET];
    2. Если я прав, то GET может содержать нечто типа {"youIps":"1111","name":"22222"}
    Дальше, если я конечно прав, можно получить в переменную $ourDataSend = $_GET
    и если не будет конфликта в инсерте с ковычками, то может и запишет все
    если будет , то экранируйте через addslashes (string)
    А вообще так не делается. Если передается json , то пусть это выглядит так:
    $.ajax({
    		type: "POST",
    		url: "sendUser.php",
    		data:{jsonData:JSON.stringify(ourDataSend)},
    ....


    А в пхп ловите так:
    if(isset($_POST['jsonData']))
    	$data = json_decode($_POST['jsonData']);

    Ну дальше доступ к полям получаете через
    $YOUIP = $data->{'youIp'} ;
    $NAME = $data->{'name'};
    Ответ написан
  • Как правильно работать с промисами в этом примере?

    @vshvydky
    Emptyform а вы вообще о промисах читали?
    Вы в then передаете через resolve То что вам надо, в reject то что надо отправиль в catch
    в вашем случае в resolve передается результат filesNames.map(fileName => fs.stat(fileName))
    Обратитесь к документации по JS
    Ответ написан
  • Нашёл вредоносный код, как его расшифровать?

    @vshvydky
    alert или console.log уже не работают?
    короче там есть функция, которая создает новый скрипт и дальше видимо его подгружает на страницу, ну а дальше не трудно предположить что происходит.
    Ответ написан
  • Почему не верный размер массива?

    @vshvydky
    По теме 1.
    Замени push на равно. Объяснить не могу, но это сработает. Не думаю, что тебе на 1 обработчик потребуется несколько функций. Возможно балуется сборщик мусора, так как в отладке функцию в массив складывает.
    this.events[event] = callback
    По теме 2.
    Можно позаимсововать код EventEmmiter для node.js
    Про велосипедность, да пахнет велосипедом. На мой взгляд избыточным смотрится наследование с передачей опций вникуда, а еще отдельный метод для регистрации события. Этот функционал должен быть включен в on. Так же неплохо иметь методы просмотра списка событий и удаление.
    А еще не совсем понимаю, как ты передашь в функцию параметры, которая попала в on. Посмотри в ноде доки, там параметры передаются после функции как аргументы.
    Апдейт, нарисовал чуток кода. Возможно это вам нужно.
    class Emitter {
        constructor() {
            this.events = {};
        }
    
        on(event, cb) {
            console.log('[ON]Проверяем есть ли массив функций: ' + (this.events[event] instanceof Array));
            if (!(this.events[event] instanceof Array)) {
                console.log('[ON]Создаем массив для ' + event);
                this.events[event] = [];
            }
            this.events[event].push(cb);
            console.log('[ON]В событие: ' + event + ' добавлена функция: ' + cb);
        }
    
        emit(event, arg) {
            try {
                if (!this.events.hasOwnProperty(event))
                    throw Error('Попытка вызвать незарегистрированное событие');
                console.log('[EMIT]Проверяем в эмите ' + (this.events[event] instanceof Array));
                this.events[event].forEach(function (item) {
                    console.log('[EMIT]Выполняем событие: ' + item + ' для аргумента: ' + arg);
                    item(arg);
                });
            } catch (e) {
                console.log('Отловили ошибку: ' + e.message);
            }
        }
    }
    let fu1 = function (arg) {
        console.log('[FUNCTION]Выполняется первая функция из эмиттера, значение аргумента ' + arg);
    };
    let fu2 = function (arg) {
        console.log('[FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента ' + arg);
    };
    let obj1 = new Emitter();
    obj1.on('run', fu1);
    obj1.on('run', fu2);
    obj1.emit('run', 'hellooooo!!!');
    obj1.emit('run', 'hef3efgw2llooooo!!!');
    obj1.emit('rune', 'hef3efgw2llooooo!!!');

    Результат исполнения:
    [ON]Проверяем есть ли массив функций: false
    [ON]Создаем массив для run
    [ON]В событие: run добавлена функция: function (arg) {
        console.log('[FUNCTION]Выполняется первая функция из эмиттера, значение аргумента ' + arg);
    }
    [ON]Проверяем есть ли массив функций: true
    [ON]В событие: run добавлена функция: function (arg) {
        console.log('[FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента ' + arg);
    }
    [EMIT]Проверяем в эмите true
    [EMIT]Выполняем событие: function (arg) {
        console.log('[FUNCTION]Выполняется первая функция из эмиттера, значение аргумента ' + arg);
    } для аргумента: hellooooo!!!
    [FUNCTION]Выполняется первая функция из эмиттера, значение аргумента hellooooo!!!
    [EMIT]Выполняем событие: function (arg) {
        console.log('[FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента ' + arg);
    } для аргумента: hellooooo!!!
    [FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента hellooooo!!!
    [EMIT]Проверяем в эмите true
    [EMIT]Выполняем событие: function (arg) {
        console.log('[FUNCTION]Выполняется первая функция из эмиттера, значение аргумента ' + arg);
    } для аргумента: hef3efgw2llooooo!!!
    [FUNCTION]Выполняется первая функция из эмиттера, значение аргумента hef3efgw2llooooo!!!
    [EMIT]Выполняем событие: function (arg) {
        console.log('[FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента ' + arg);
    } для аргумента: hef3efgw2llooooo!!!
    [FUNCTION]Выполняется вторая функция из эмиттера, значение аргумента hef3efgw2llooooo!!!
    Отловили ошибку: Попытка вызвать незарегистрированное событие
    Ответ написан
  • Возможно ли задать POST и GET запросы, без доступа к серверу?

    @vshvydky
    Если вы делаете пост или гет на свой сервер, то можно разрешить себе это делать. к "Access-Control-Allow-Origin" установить *
    Ответ написан
    Комментировать
  • Как взять title из iframe и передать его странице, в которой он загружается?

    @vshvydky
    Если ифрейм с чужой страницы, то никак, безопасность браузера
    Ответ написан
  • Как положить данные ajax в переменную?

    @vshvydky
    function ax(url, callback) {
        var xhr = new XMLHttpRequest();
        xhr.open('GET', url);
        xhr.onreadystatechange = function(){
            if (this.readyState == 4) {
                if (this.status == 200)
                    callback(this.responseText);
                // иначе сетевая ошибка
            }
        };
        xhr.send(null);
    }
    
    function getUrl() {
        var gUrl = 'http://localhost';
        ax(gUrl, function (data) {
            console.log(data);
        });
    }

    У вас функция function (data) выполняется хз где и когда, а точнее , когда уже уничтожен экземпляр функции ДайУрл.... Если не хочется особо вникать ни во что, достаточно той переписки, что я скинул. Если хотите данные писать куда-то в переменную, объявите ее на уровень выше своей функции ДайУрл и пушите туда что надо. А вообще совет, почитайте учебник learn.javascript.ru . Кстати на промисах это будет действительно изящнее. Как это сделать поймете прочитав книгу.
    Ответ написан
    Комментировать
  • Как получить length активного элемента?

    @vshvydky
    Думаю ответ скрыт здесь
    Ответ написан
    Комментировать
  • Как получить бессрочный токен на javascript для vk api?

    @vshvydky
    а разве ВК четко не обозначает, что действие токена ограничено временными рамками?
    3. Получение access_token
    После успешной авторизации приложения браузер пользователя будет перенаправлен по адресу redirect_uri, указанному при открытии диалога авторизации. При этом ключ доступа к API access_token и другие параметры будут переданы в URL-фрагменте ссылки:

    http://REDIRECT_URI#access_token= 533bacf01e11f55b536a565b57531ad114461ae8736d6506a3&expires_in=86400&user_id=8492&state=123456

    Вместе с ключом access_token также будет указано время его жизни expires_in, заданное в секундах. Если срок использования ключа истек, то необходимо повторно провести все описанные выше шаги, но в этом случае пользователю уже не придется дважды разрешать доступ. Запрашивать access_token также необходимо при смене пользователем логина или пароля или удалением приложения в настройках доступа.

    Кроме того, среди возвращаемых параметров будет указан user_id — идентификатор авторизовавшегося пользователя.

    В случае возникновения ошибки авторизации в качестве GET-параметров в redirect_uri будет передана информация об этой ошибке.
    Ответ написан
    Комментировать
  • Каким образом появляется это окно?

    @vshvydky
    Например как здесь getbootstrap.com/javascript
    Читать про modal
    Ответ написан
    Комментировать
  • Всё верно написан но функция не вызывается в js?

    @vshvydky
    document.forms["myForm"]["options"].value; проверь на работоспособность и переделай через querySelectorAll
    Ответ написан
    Комментировать
  • Почему пишет, что это не является функцией?

    @vshvydky
    А вас вообще код не смущает? Вы написали мягко говоря какую-то ерунду.
    Если хотите создать объект, первым делом не методы объявляйте, а объект....
    Ответ написан
  • Как сделать работоспособный данный код?

    @vshvydky
    function add(x, y) {
         if (typeof y === "undefined") { 
            return function (y) {
                  return x + y;
            };
         }
       return x + y;
    }
    alert(add(2,5));
    alert(add(2)(5));
    Ответ написан
    Комментировать
  • Как вывести одно конкретное значение из файла JSON?

    @vshvydky
    вот так
    если https://blockchain.info/ru/ticker для вас сторонний ресурс, то вам нужно будет получать его через http proxy. простейший делается на php
    <?php
    $homepage = file_get_contents('https://blockchain.info/ru/ticker');
    echo $homepage;
    ?>

    дальше делаете getJSON уже с себя и браузер позволит это исполнить
    Ответ написан
    3 комментария
  • Как получить текст кода функции свойства объекта JavaScript?

    @vshvydky
    var obj1 = {
      func: function(){
      console.log(1111);
    }
    }
    obj1.func();
    console.log(obj1.func);

    вызов функции без () передает ее текст, зачем toString вообще использовать в этом случае?
    Ответ написан
  • Добавление класса в цикле с задержкой через setTimeout?

    @vshvydky
    сделать функцию которая будет из массива забирать данные и рекурсивно вызывать сама себя пока нужные классы не будут созданы
    let arrData= ['elem1', 'elem2', 'elem3'];
    function f(arr){
    if(arr.length>0){
     $(arr.pop()).addClass('exhibition-display-extra');
    setTimeout(f(arr),100);
    }
    }
    setTimeout(f(arrData),100);
    //ну или если первый элемент без задержки, то просто вызвать f(arrData);

    как-то так, могут быть чуток ошибки, но идея верная
    Ответ написан
    Комментировать
  • Как передать в функцию ID?

    @vshvydky
    По мне правильнее сделать иначе, через addEventListener добавить событие на класс кнопки, ведь как унопок так и событий может быть множество, где функцию вызывать func(this) в хтмл тег кнопки добавить атрибут data-produkt-id="1234"
    Функцию описать как func(elem){
    // атрибут с айди будет доступен по elem.dataset.produktId
    }
    Опять же атрибут в ътмл можно добавлять динамически, если такая необходимость есть
    Пример здесь (два варианта)
    Ответ написан
    1 комментарий