Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Открыть новую тему     Написать ответ в эту тему

Jokerjar79



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Фильтр по слову "jquery" не дал какой-либо общей темы по этой библиотеке, поэтому решился создать. У меня возник такой вопрос: согласно справочной документации такой код:
 

Код:
  <p>1</p>
  <p>2</p>
  <p>3</p>
  <p>4</p>
 
  <script language="javascript">
      $("p")[0].html("test");
  </script>

 
должен <p>1</p> заменить на <p>test</p>. Но не работает. Пробовал еще так:
 

Код:
$("p").get(0).html("test");

 
Есть подозрения, что мануал, по которому осваиваю библиотеку, написан для более старой версии, а позже принцип обращения к конкретному элементу из коллекции как-то изменился. Кто знает, как реализовать это (версия библиотеки - v1.3.2)



Документация по jQuery - eng, рус

Всего записей: 710 | Зарегистр. 08-09-2007 | Отправлено: 16:22 11-08-2009 | Исправлено: Cheery, 07:35 09-08-2013
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny child

Цитата:
но - там подразумевается применение С НАЧАЛА загрузки страницы применение соответствующего css

вы можете вставить загрузку стиля и в body.

Цитата:
как на лету применять какую-то тему к диалогу в таких условиях?


Код:
$('head').append( $('<link rel="stylesheet" type="text/css" />').attr('href', 'your stylesheet url') );


Цитата:
Выпукло что ли

изучайте CSS и адаптируйте под себя.
https://api.jqueryui.com/theming/css-framework/
 
проще вообще написать свой код для диалога вообще.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:38 29-11-2020 | Исправлено: Mavrikii, 22:39 29-11-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii (пост)
Цитата:
проще вообще написать свой код для диалога

но т.к. для вмешательства даны полномочия очень маленькие. сам я путем погружения в эти нюансы только лишь начинаю изучать это дело, выходит, что ищется решение с минимумом изменений, но дающих максимум результативности.
 
Mavrikii (пост)
Цитата:
изучайте CSS и адаптируйте под себя.
https://api.jqueryui.com/theming/css-framework/
надо признаться, что вообще эти возможности выглядят мощными, но весьма сумбурными что ли. Редактировать интуитивно диалог не выходит с его помощью. И это вторая, не менее важная причина, отчего ищется какое-то готовое средство в виде - подключил - и оно само перерисует как-то красиво)))

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 12:25 30-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny child

Цитата:
Редактировать интуитивно диалог не выходит с его помощью

https://jqueryui.com/themeroller/
 

Цитата:
какое-то готовое средство

https://www.pixelstech.net/article/1350748739-Free-jQuery-UI-themes
 

Цитата:
как-то красиво


Цитата:
Границу диалога тоже явно трехмерно отрисовать. Выпукло что ли))) Подложку на весь "задник" фона диалога наложить - или графическую

это уже устарело

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 12:29 30-11-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii (пост)
Цитата:
это уже устарело
кому-то может и да, но не тому, кто деньги платит, чтоб так было сделано.

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 14:24 30-11-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii (пост)
Цитата:
https://www.pixelstech.net/article/1350748739-Free-jQuery-UI-themes

захотел попробовать из ссылки jQuery UI Bootstrap - там ссылка сломалась.
Гугление выдало невнятные ссылки на разнообразнейшие источники. Пара тройка взята на пробу и ни в одно нельзя добиться простого изменения вида диалога динамически.
Вот хз как тут можно чему-то научиться, если ни в одном из этих источников нет толкового описания зачем то или это, как измениться и что измениться, если сменить этот параметр или другой...
Даже в преобладает мнение, что jQuery и Bootstrap - несовместимые вещи.
 
Не получалось ил у вас совмещать эти технологии - на последних версиях этих компонентов? А то примеры в инете преобладающие - идут на 3 Bootstrap, которого у нашем проекте нет. А на 4.5.3 не пашут эти примеры так же как на рисунках, сопровождающих эти примеры....

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 19:33 30-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
destiny child

Цитата:
там ссылка сломалась

но гугл же работает
https://jquery-ui-bootstrap.github.io/jquery-ui-bootstrap/

Цитата:
Вот хз как тут можно чему-то научиться

для этого просто нужно знать CSS и все.
далее открываем панель разработчика в браузере и изучаем где и какой класс.
 

Цитата:
 А на 4.5.3 не пашут

потому что у него и внешний стиль другой и куча других изменений.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 21:20 30-11-2020
destiny child



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mavrikii (пост)
Цитата:
но гугл же работает
https://jquery-ui-bootstrap.github.io/jquery-ui-bootstrap/
 

да, это я пробовал. писал же, что (пост)
Цитата:
Гугление выдало невнятные ссылки на разнообразнейшие источники.
но пользы никакой.
походу не работает именно из-за разницы в версиях этих компонентов... хреново. теперь подбирать - с какой старой это будет работать...

Всего записей: 3322 | Зарегистр. 01-04-2006 | Отправлено: 11:52 01-12-2020 | Исправлено: destiny child, 18:29 01-12-2020
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function _getAJAX( name, mydata )
{
    var result = null;
    var scriptUrl = name;
    $.ajaxSetup({ cache: false });
    $.ajax({
        url: scriptUrl,
        data: mydata,
        type: 'POST',
        dataType: 'html',
        contentType: 'application/x-www-form-urlencoded; charset=UTF-8', // this is the default value, so it's optional
        async: false,
        success: function(data) {
            result = data;
        }
    });
    return result;
}

можно ли это переделать, чтобы вчитать содержимое файла в переменнию ?
без кеширования
 
спасибо
 
Добавлено:
i forgot this

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:45 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
вчитать содержимое файла в переменнию


Цитата:
        success: function(data) {
            result = data;
        }

а это что?
 

Цитата:
без кеширования

https://smoothprogramming.com/jquery/explicitly-set-cache-false-jquery-ajax/

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 04:48 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
извеняюсь поторопился, мне нужно вчитать содержимое PHP or Java с сервера, а просто вчитать из файла в переменную.
 
Добавлено:
я не сплю часто, страдаю бессонницей

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 04:56 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
а просто вчитать из файла в переменную.

какого файла?  

Код:
var file;
$.get("URL", function(response) { file = response; });

это все равно сделает запрос к серверу за файлом.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 05:00 20-05-2021 | Исправлено: Mavrikii, 05:01 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
function _getFileString(_fileurl){
  …
  return _filestring;
}

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 05:11 20-05-2021 | Исправлено: vs6262, 05:14 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
начинает уже надоедать. ваша проблема в том, что вы не можете внятно выразить свою мысль, а это уже половина решения проблемы.
 
в том виде, каком вы хотите, придется делать синхронный запрос, а это плохо, так как будет подвешивать браузер. если на запрос уйдет несколько секунд - браузер ничего не будет делать в течение этого времени. если файл расположен локально (без сервера, я об этом и спрашивал - откуда читается файл), то это не сработает и там нужно использовать другой метод https://developer.mozilla.org/ru/docs/Web/API/FileReader
 
+ https://stackoverflow.com/questions/6685249/jquery-performing-synchronous-ajax-requests
но еще раз повторю, так делать очень плохо.
 
нужно сделать асинхронный запрос и после его удачного выполнения вызывать код который должен использовать эти данные.
если это сложно сделать явно, то хотя бы через Promise
https://developer.mozilla.org/ru/docs/Web/JavaScript/Reference/Global_Objects/Promise
но никак не через возврат из функции.

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 05:14 20-05-2021 | Исправлено: Mavrikii, 05:41 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
https://stackoverflow.com/questions/13709482/how-to-read-text-file-in-javascript?form=MY01SV&OCID=MY01SV

Код:
<!DOCTYPE html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Read File (via Filereader into variable)</title>
    <script type="text/javascript">
 
    if (FileReader.prototype.readAsBinaryString === undefined) {
    FileReader.prototype.readAsBinaryString = function (fileData) {
        var binary = "";
        var pt = this;
        var reader = new FileReader();
        reader.onload = function (e) {
            var bytes = new Uint8Array(reader.result);
            var length = bytes.byteLength;
            for (var i = 0; i < length; i++) {
                binary += String.fromCharCode(bytes[i]);
            }
            //pt.result  - readonly so assign content to another property
            pt.content = binary;
            pt.onload(); // thanks to @Denis comment
        }
        reader.readAsArrayBuffer(fileData);
    }
}
 
    var reader; //GLOBAL File Reader object for demo purpose only
    
    if (window.ActiveXObject) {
    try {
        var ActiveXObject = new ActiveXObject("Scripting.FileSystemObject");
        ActiveXObject.Visible = true;
    }
    catch (e) {
        console.log(e.message);
    }
}
else {
    console.log("Your browser does not support ActiveXObject.");
}
    /**
     * Check for the various File API support.
     */
    function checkFileAPI() {
        if (window.File && window.FileReader && window.FileList && window.Blob) {
            reader = new FileReader();
            return true;  
        } else {
            console.log('The File APIs are not fully supported by your browser. Fallback required.');
            return false;
        }
    }
    //checkFileAPI();
    /**
     * read text input
     */
    function readText(filePath) {
        var output = ""; //placeholder for text output
        if(filePath.files) {            
            reader.onload = function (e) {
                output = e.target.result;
                //displayContents(output);
                return output;
            };//end onload()
            reader.readAsText(filePath.files);
        }//end if html5 filelist support
        else if(ActiveXObject && filePath) { //fallback to IE 6-8 support via ActiveX
            try {
               // readerActX = new ActiveXObject("Scripting.FileSystemObject");
                var file = ActiveXObject.OpenTextFile(filePath, 1); //ActiveX File Object
                output = file.ReadAll(); //text contents of file
                file.Close(); //close file "input stream"
                //displayContents(output);
                return output;
            } catch (e) {
                if (e.number == -2146827859) {
                    console.log('Unable to access local files due to browser security settings. ' +  
                     'To overcome this, go to Tools->Internet Options->Security->Custom Level. ' +  
                     'Find the setting for "Initialize and script ActiveX controls not marked as safe" and change it to "Enable" or "Prompt"');  
                }
            }        
        }
        else { //this is where you could fallback to Java Applet, Flash or similar
            return false;
        }        
        return true;
    }    
 
</script>
</head>
<body onload="checkFileAPI();">
<script>
    alert(readText("Test.xml"));
</script>
</body>
</html>

по ссылке через выбор файла работает
моя скатерть не получается просто функция
 
 
всё я закончил изменения

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 06:57 20-05-2021 | Исправлено: vs6262, 07:24 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
не получается просто функция

я же пояснил почему.. здесь js работает асинхронно.
 
и об ActiveXObject можно давно забыть, писать только под HTML5

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 07:55 20-05-2021 | Исправлено: Mavrikii, 07:56 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        <label>Select a file to read from your system:</label>
        <input type="file" id="fileinput"/>
 
        <script>
            /**
             *  Simple JavaScript Promise that reads a file as text.
             **/
            function readFileAsText(file){
                return new Promise(function(resolve,reject){
                    let fr = new FileReader();
 
                    fr.onload = function(){
                        resolve(fr.result);
                    };
 
                    fr.onerror = function(){
                        reject(fr);
                    };
 
                    fr.readAsText(file);
                });
            }
 
            // Handle fileupload
            document.getElementById("fileinput").addEventListener("change", function(ev){
                let file = ev.currentTarget.files[0];
 
                // Abort file reading if no file was selected
                if(!file) return;
 
                readFileAsText(file).then((fileContent) => {
                    // Print file content on the console
                    console.log(fileContent);
                });
            }, false);
        </script>
    </body>
</html>

так нашел рабочее
 
голубую строчку всего лишь нужно поменять и будет считывать контент файла и из "path/filename.txt"
 
Добавлено:
а остальное я потом функцию сделаю
 
Добавлено:
ещё раз извеняюсь за надоедливость
 
Добавлено:
я думаю нужен fileinputstream в JS

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 15:53 20-05-2021 | Исправлено: vs6262, 16:10 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
 <input type="file" name="file" id="file">
 
<script>
 function readFile(_filepath){
 
  var file = new File([""], _filepath);
 
  var reader = new FileReader();
  reader.onload = function(progressEvent){
    // Entire file
    console.log(this.result);
 
    // By lines
    var lines = this.result.split('\n');
    for(var line = 0; line < lines.length; line++){
      console.log(lines[line]);
    }
  };
  reader.readAsText(file);
}
 
readFile("Test.xml");
 
</script>
 
    </body>
</html>

голубой цвет не вчитывает с "path/Test.xml"
помогите пожалуйста ?
 
спасибо

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 20:29 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262
этот вопрос не имеет отношения к jQuery
 

Цитата:
голубой цвет не вчитывает с "path/Test.xml"

и не будет. браузер не позволит вам прочитать любой файл у пользователя - это серьезная дыра в безопасности. только тот, что он выберет сам. new File создает лишь Blob под видом файла, а не указывает на какой то конкретный в системе.
содержимое Blob указывается через первый аргумент, который пустой [""]
 
прочитать можно лишь то, что пользователь сам выберет в input форме.
 
в сотый раз спрошу - страница с js кодом открывается с локального диска или с вебсервера?
откуда хотите прочитать данные - с локального диска или с вебсервера?

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 21:18 20-05-2021 | Исправлено: Mavrikii, 21:21 20-05-2021
vs6262



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
этот вопрос не имеет отношения к jQuery  

извеняюсь я начинал с jQuery а пришел к FileReader. тему уже не хотел менять

Цитата:
откуда хотите прочитать данные - с локального диска или с вебсервера?

с вебсервера
PS: а раньше вроде что то универсальное было
 
 
Добавлено:
я уже нагуглил старое ничего не работает, или я балбес
 
Добавлено:

Код:
function(){ $.get('Test.xml'+'?' + Math.random(), function(data) { /*$('.result').html(data);*/ alert(data); }); };

раньше у меня это работало, а сейчас нет

Всего записей: 2188 | Зарегистр. 25-02-2013 | Отправлено: 21:37 20-05-2021
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vs6262

Цитата:
с вебсервера

тогда вам FileReader не нужен - это для локальных файлов.
 

Цитата:
я уже нагуглил старое ничего не работает

я вам его и указывал, все должно работать если файл находится там же, где и html страница с кодом. F12 и смотрите закладку сетевой активности. и смотрите консоль браузера на сообщения об ошибке.
 

Код:
function(){ $.get('Test.xml'+'?' + Math.random(), function(data) { /*$('.result').html(data);*/ alert(data); }); };

этот код не выполняется, так как лишь определение функции.
 
(function() { })()

Всего записей: 15117 | Зарегистр. 20-09-2014 | Отправлено: 22:37 20-05-2021 | Исправлено: Mavrikii, 22:43 20-05-2021
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

Компьютерный форум Ru.Board » Интернет » Web-программирование » Вопросы по jQuery


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru