Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/55: Рейтинг темы: голосов - 55, средняя оценка - 4.69
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063

Вытащить элемент из другого сайта и вставить в текущий

29.10.2020, 15:57. Показов 12141. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хочу вытащить document.getElementsByClassName("tl-desc").innerText из 'https://www.userbenchmark.com/Search?searchTerm='+model и вставить его в document.querySelectorAll("div[class="product-info__title-link"] a[class="ui-link"]").innerText текущего сайта. Пытался найти информацию в интернете, но ничего не получается, даже console.log ничего не выводит. Как это сделать?

Вот мои попытки:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// ==UserScript==
// @name        Userbenchmark integration
// @namespace   https://greasyfork.org/ru/users/303426-титан
// @match     https://www.dns-shop.ru/catalog/*
// @version     1
// @grant       none
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==
 
let RAMs = document.querySelectorAll("div[class=\"product-info__title-link\"] a[class=\"ui-link\"]")
for(let RAM of RAMs) {
    let RAMtext = RAM.innerText;
    let model = RAMtext.slice(RAMtext.lastIndexOf('[')+1, RAMtext.lastIndexOf(']'));
    let bench;
    // $.ajax({
    //  url:'https://www.userbenchmark.com/Search?searchTerm='+model,
    //  context: document.getElementsByClassName("tl-desc")
    // }).done(function () {
    //  console.log($(this));
    //  bench = $(this).innerText;
    //  console.log(bench);
    //  bench = bench.slice(bench.lastIndexOf(" "));
    //  RAM.innerText = RAM.innerText + bench;
    // });
 
    var http = new XMLHttpRequest();
    http.open('GET', 'https://www.userbenchmark.com/Search?searchTerm='+model);
    http.onreadystatechange = function () {
        if (this.readyState == 4 && this.status == 200) {
            var doc = new DOMParser().parseFromString(this.responseText, "text/html");
            bench = doc.getElementsByClassName("tl-desc").innerText;
            console.log('bench = '+bench);
            bench = bench.slice(bench.lastIndexOf(' '));
            RAM.innerText = RAM.innerText + bench;
        }
    }
 
}
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.10.2020, 15:57
Ответы с готовыми решениями:

вытащить число с другого сайта
Каким образом можно поставить себе на сайт кол-во фотографий в альбоме в вк?

как вытащить json с другого сайта?
как можно вытащить этот json? https://yobit.net/api/3/ticker/ltc_btc-nmc_btc file_get_contents() выдает Warning:...

Всплывающее окно - нужно просто вытащить скрипты с другого сайта. Буду благодарен
Как сделать на сайте чтоб при наведении на картинку появлялся блок с описание пример как на картинке Это взято с сайта у них все...

18
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
29.10.2020, 19:58
Здравствуйте Титан_1,

Тут обсуждалось нечто подобное Как сделать авто загрузку контента с другой страницы
0
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
31.10.2020, 17:07  [ТС]
web_coder2, Перенес тот код с минимальными изменениями, чтобы избежать ошибок вследствии незнания синтаксиса, но всё равно не работает:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
let RAMs = document.querySelectorAll("div[class=\"product-info__title-link\"] a[class=\"ui-link\"]")
for(let RAM of RAMs) {
    let RAMtext = RAM.innerText;
    let model = RAMtext.slice(RAMtext.lastIndexOf('[')+1, RAMtext.lastIndexOf(']'));
    let bench;
 
 
    let _selectors = ['.tl-desc'];
 
    $.get('https://www.userbenchmark.com/Search?searchTerm='+model).then(function (html) {
        let list = $(_selectors.join`,`, html);
        console.log(list)
        //bench = list[0].
        RAM.html(list);
    });
 
 
}
Аналогично, даже не входит внутрь $.get.then

Добавлено через 56 минут
....
0
 Аватар для irises
140 / 72 / 26
Регистрация: 29.06.2015
Сообщений: 186
31.10.2020, 19:18
JavaScript
1
document.querySelectorAll("div[class=\"product-info__title-link\"] a[class=\"ui-link\"]")
У Вас точно есть div, у которого есть один класс - product-info__title-link? Или в этом div точно есть ссылка с одним классом - ui-link?

Я бы использовала селектор класса, а не селектор атрибута:
JavaScript
1
document.querySelectorAll("div.product-info__title-link a.ui-link")
Тоесть не заходит в $.get.then? Может есть ошибка в консоли?
0
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
02.11.2020, 18:39
Здравствуйте Титан_1,

У меня на простом примере, работает
Где http://webdev/test-lab/testlab-js/008/001.html

HTML5
1
2
3
<div class="container">
    Hello world
</div>
Код

JavaScript
1
2
3
4
5
6
7
$.get("http://webdev/test-lab/testlab-js/008/001.html")
.then(function (html) {
    $(html).filter(".container").each(
        function() {
            console.log($(this).html())
        });
});
Добавлено через 21 минуту
Еще можно попытаться обработать ошибку с помощью метода fail

JavaScript
1
2
3
4
5
6
7
8
9
10
11
    $.get("http://webdev/test-lab/testlab-js/008/wwww02.html")
 
.then(function (html) {
    $(html).filter(".container").each(
        function() {
            console.log($(this).html())
        });
    })
    .fail(e => {
        console.log(e.statusText)
    });
Также воспользуйтесь советом irises, и посмотрите может в консоли что то интересное будет.
0
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
04.11.2020, 22:08  [ТС]
Консоль говорит
Code
1
Content Security Policy: Настройки страницы заблокировали загрузку ресурса в:  https://www.userbenchmark.com/Search?searchTerm=R7416G2133U2S-U ("connect-src https://www.dns-shop.ru https://*.dns-shop.ru https://*.retailrocket.net https://hls-jp.jwpsrv.com/ https://content.jwplatform.com/ https://mc.yandex.ru/ https://www.google-analytics.com/ https://*.mtproxy.yandex.net/ https://*.go-mpulse.net/ https://*.akstat.io/ https://*.akamaihd.net/ https://bam.nr-data.net https://stats.g.doubleclick.net/ https://www.google.com/ads/ https://m.addthis.com/live/red_lojson/ https://s7.addthis.com/l10n/ https://top-fwz1.mail.ru/ https://bot.aimylogic.com/restapi/ wss://chat.dns-shop.ru https://chat.dns-shop.ru https://e-shop.homecredit.ru https://media.pointandplace.com/ https://media.flixcar.com/ https://autocomplete.diginetica.net/ https://www.facebook.com/tr/ https://api-maps.yandex.ru/ https://api.retailrocket.net https://content.syndigo.com/").
И что это значит? Dns запрещает мне изменять моё отображение сайта?

Добавлено через 14 минут
На e-katalog такая ошибка:
Code
1
Запрос из постороннего источника заблокирован: Политика одного источника запрещает чтение удаленного ресурса на https://www.userbenchmark.com/Search?searchTerm=PSD416G21332. (Причина: отсутствует заголовок CORS «Access-Control-Allow-Origin»).
0
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
06.11.2020, 14:13  [ТС]
Ну, пока никто не отвечает, сделал так:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// ==UserScript==
// @name       Dns Userbenchmark integration
// @namespace   https://greasyfork.org/ru/users/303426-титан
// @match     https://www.dns-shop.ru/catalog/*
// @version     1
// @grant       none
// @require      http://code.jquery.com/jquery-latest.js
// ==/UserScript==
 
(function() {
    'use strict';
 
    console.log(location.pathname);
 
    let ProductCards = document.querySelectorAll("[class=\"n-catalog-product ui-button-widget\"]");
//let RAMs = document.querySelectorAll("div[class=\"product-info__title-link\"] a[class=\"ui-link\"]")
    for(let Product of ProductCards) {
        let RAMname = Product.querySelector("div[class=\"product-info__title-link\"] a[class=\"ui-link\"]");
        let nametext = RAMname.innerText;
        let model = nametext.slice(nametext.lastIndexOf('[') + 1, nametext.lastIndexOf(']'));
        + model;
        RAMname.parentElement.after(createUBbutton(model));
    }
 
 
    function createUBbutton(model) {
        let form = document.createElement('form');
        form.action = "https://www.userbenchmark.com/Search?searchTerm=" + model;
        form.target = "_blank";
        let UBbutton = document.createElement('button');
        UBbutton.className = "OpenInUB";
        UBbutton.innerText = "Открыть на userbenchmark.com";
        UBbutton.style = `
            color: black;
            `;
        form.appendChild(UBbutton);
 
        return form;
    }
 
})();
Не совсем то, что нужно, но хотя бы работает... почти. Почему при нажатии на UBbutton открывается https://www.userbenchmark.com/Search?? То есть, всё, что после знака вопроса, удаляется из ссылки. Если вручную скопировать ссылку из form.action в новое окно браузера, то открывается то, что нужно
0
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
07.11.2020, 00:05
Еще раз приветствую Титан_1 ,

На всех этих ресурсах скорее всего не настроена CORS либо настроена на блокировку доступа. Я попробовал получить доступ через iframe и там cors . Можно еще попробовать тырить контент с другой вкладки браузера, но это наверное Вам не подойдет

Но вот php этот CORS побоку, вот только нормального парсера html под php я не знаю DomDocument нормально ищет по id а классы через DomXPath как то не очень. Придется как то придумать как сначала загрузить страницу, а потом подгрузить нужный контент.

PHP
1
2
3
4
5
6
7
8
9
10
$url= 'https://www.userbenchmark.com/Search';
 
$arrContextOptions=array(
      "ssl"=>array(
            "verify_peer"=>false,
            "verify_peer_name"=>false,
        ),
    );
 
$response = file_get_contents($url, false, stream_context_create($arrContextOptions));
Добавлено через 24 минуты
А вообще у yandex.market есть API для работы с товарами и поиском по магазинам

Добавлено через 34 минуты
Но я бы не рекомендовал использовать file_get_contents на продакшн сайте для этой цели, так как он может подвесить сессию, лучше запускать стороннюю программу которая вернет файл с содержимым сайта и его потом прочитать.

Добавлено через 3 минуты
Цитата Сообщение от web_coder2 Посмотреть сообщение
На всех этих ресурсах скорее всего не настроена CORS либо настроена на блокировку доступа
блокировку доступа для методов которые учитывают CORS.
0
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
07.11.2020, 13:15
Цитата Сообщение от Титан_1 Посмотреть сообщение
Не совсем то, что нужно, но хотя бы работает... почти. Почему при нажатии на UBbutton открывается https://www.userbenchmark.com/Search?? То есть, всё, что после знака вопроса, удаляется из ссылки. Если вручную скопировать ссылку из form.action в новое окно браузера, то открывается то, что нужно
Я не сразу понял что Вы сделали xD
Но пригляделся и понял, Вы около каждого товара на своем сайте добавили кнопку, посмотреть на сайте например
Code
1
https://www.userbenchmark.com
Но реализовали это через правку через Form submit, но это проще сделать через тег a

HTML5
1
<a target="_blank" rel="nofollow" href="https://www.userbenchmark.com/Search?searchTerm=R7416G2133U2S-U">Ссылка</a>
Добавлено через 3 минуты
Цитата Сообщение от Титан_1 Посмотреть сообщение
Почему при нажатии на UBbutton открывается https://www.userbenchmark.com/Search??
Потому что по умолчанию форма отправляет данные методом POST, а параметры запроса передаются как GET
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.11.2020, 18:38
почитайте на досугеhttps://ru.wikipedia.org/wiki/... 0%BD%D0%B0, откуда узнаете, что попытка с помощью браузерного JS прочитать чужую (не с вашего домена) страницу равносильна по результату попытке позвонить по вашему мобильному инопланетянам с Альфы Кентавра
1
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
07.11.2020, 20:25
Приветствую kalabuni, супермизантроп и создатель пятнашек в которых можно двигать сразу несколько элементов. Спасибо Вам что делитесь опытом. Я только дополню Ваш ответ.

Цитата Сообщение от kalabuni Посмотреть сообщение
попытка с помощью браузерного JS прочитать чужую (не с вашего домена) страницу равносильна по результату попытке позвонить по вашему мобильному инопланетянам с Альфы Кентавра
только если политика CORS ((Cross-Origin Resource Sharing ) — механизм, использующий дополнительные HTTP-заголовки, чтобы дать возможность агенту пользователя получать разрешения на доступ к выбранным ресурсам с сервера на источнике (домене), отличном от того, что сайт использует в данный момент) не настроена или настроена таким образом чтобы никому не предоставлять доступ с использованием CORS.

Для того чтобы разрешить доступ на сервере в заголовках нужно прописать Access-Control директивы например так.

PHP
1
2
3
4
5
6
7
8
<?php
 
header('Content-Type: application/json');
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Methods: GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type");
 
echo json_encode(["Hello" => "World"]);
И тогда к нашему правильно настроенному серверу можно получить доступ с другого домена

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
async function getData(url = '') {
 
  const response = await fetch(url, {
    method: 'GET',
    //mode: 'cors', можно раскоментировать 
     headers: {
       'Content-Type': 'application/json'
    },
 
  });
  return await response.json(); 
}
 
getData('link to file php on our server')
  .then(data => { console.log(data);})
  .catch(e=>{ console.log(e)});
И еще я хотел добавить что к атрибуту rel тега тегу a, который ссылается на другой домен нужно добавить noopener. Чтобы защитится от хакерских атак xD
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
07.11.2020, 21:25
web_coder2, осталось только найти способ сообщить инопланетянам с Альфы Кентавра о необходимости прописать эти самые заголовки и надеяться, что они согласятся с этой нужной вам (но совершенно не нужной им) необходимостью
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,148
Записей в блоге: 43
07.11.2020, 23:05
Титан_1, а как предполагается запускать этот скрипт, точнее откуда. Если судить по заголовочной части твоего скрипта, то больше похоже, что он предназначен не для размещения на сайте, а для запуска из менеджера скриптов, поддерживающего формат GreaseMonkey. Если это так, то, по всей видимости не худо было бы упомянуть об этом, ну и заодно еще и о том, какой именно менеджер используется. Для выполнения кроссдоменных запросов в GreaseMonkey была специальная функция GM.xmlHttpRequest - GreaseSpot Wiki, однако в современных скриптменеджерах она может называться иначе, например вот ссылка на документацию по ViolentMonkey GM_* APIs - Violentmonkey. Здесь, как можно заметить, у функции другое имя. Как правило, для того, чтобы gm-функция была доступна, это нужно прописать в области метаданных, то есть в ViolentMonkey придется вместо
JavaScript
1
// @grant       none
написать
JavaScript
1
// @grant       GM_xmlhttpRequest
А дальше как указано в документации. Если используется TamperMonkey или что-то еще, то лучше глянуть в документацию именно по этому расширению, поскольку там могут быть разночтения.
1
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
09.11.2020, 22:15  [ТС]
diadiavova, Спасибо, посмотрю. Я специально оставил упоминание UserScript, чтобы было понятно, что он запускается не из сайта.
Я использую GreaseMonkey в одном браузере и TamperMonkey в другом. Вообще, хотелось бы, чтобы скрипт работал в любом менеджере скриптов
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,148
Записей в блоге: 43
10.11.2020, 00:27
Лучший ответ Сообщение было отмечено Титан_1 как решение

Решение

Титан_1, у меня установлен только ViolentMonkey, но вот что я попробовал
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// ==UserScript==
// @name Test Cross-Origin Request
// @namespace Violentmonkey Scripts
// @match *://*/*
// @grant GM_registerMenuCommand
// @grant GM.xmlHttpRequest
// @grant GM_xmlhttpRequest
// ==/UserScript==
 
 
GM_registerMenuCommand("Test GM XHR", function(){
  GM.xmlHttpRequest({
    method: "GET",
    url: "https://www.cyberforum.ru/",
    onload: function(response) {
      alert(response.responseText);
    }
  });
});
 
GM_registerMenuCommand("Test VM XHR", function(){
  GM_xmlhttpRequest({
    method: "GET",
    url: "https://www.cyberforum.ru/",
    onload: function(response) {
      alert(response.responseText);
    }
  });    
 
});
Оказалось, что несмотря на то, что этого вроде как нет в документации, тем не менее функции GreaseMonkey поддерживаются. Так что можно использовать их. Возможно TampeMonkey тоже их поддерживает, поскольку там задумка была именно в том, чтобы поддерживались старые скрипты. Если нет, то придется вспомнить старые методики написания кроссбраузерного кода, когда проверяется наличие той или иной функции. Сигнатуры тут вроде как совпадают, так что проблем быть не должно.
1
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
03.01.2021, 19:42  [ТС]
diadiavova, Спасибо! А как теперь навигироваться в responseText? Пытался
JavaScript
1
let bench = response.responseText.getElementsByClassName("tl-desc").innerText;
получил "Uncaught TypeError: response.responseText.getElementsByClass Name is not a function"

Добавлено через 5 минут
Нашёл документацию, в которой можно найти ответ:
JavaScript
1
2
let responseXML = new DOMParser()
        .parseFromString(response.responseText, "text/xml");
Добавлено через 6 минут
Хм, странно, что let bench = responseXML.getElementsByClassName("tl-desc").innerText; возвращает undefined. Если в консоль вывести responseXML, то вручную можно найти <span class="tl-desc">

Добавлено через 1 минуту
Понял свою ошибку - возвращается коллекция, поэтому innerText не берётся
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,148
Записей в блоге: 43
04.01.2021, 01:53
Цитата Сообщение от Титан_1 Посмотреть сообщение
text/xml
А почему тип данных такой, а не text/html? Если документ написан не в хмл-совместимом синтаксисе, то вывалится ошибка.
Попробуй простой тест
HTML5
1
<a><b></a>
Данный документ попробуй спарсить обоими типами и увидишь разницу.
1
 Аватар для Титан_1
21 / 21 / 3
Регистрация: 24.05.2014
Сообщений: 1,063
04.01.2021, 11:16  [ТС]
diadiavova, спасибо! А вне менеджера скриптов, JS'ом так просто вытащить html из другого сайте нельзя?
0
 Аватар для diadiavova
7258 / 2605 / 744
Регистрация: 11.04.2015
Сообщений: 4,148
Записей в блоге: 43
05.01.2021, 11:16
Цитата Сообщение от Титан_1 Посмотреть сообщение
А вне менеджера скриптов, JS'ом так просто вытащить html из другого сайте нельзя?
Об этом в начале темы уже говорили. Подробно описано здесь
Cross-Origin Resource Sharing (CORS) - HTTP | MDN
Ну, а так, никто не мешает делать запросы на свой сайт, а оттуда переадресовывать их уже куда надо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.01.2021, 11:16
Помогаю со студенческими работами здесь

Как вытащить видео-трансляцию со стороннего сайта и вставить ее на свой сайт?
Подскажите как это можно сделать? Например с сайта какого-нибудь телеканала.

Вставить title из другого сайта на мой в <p>
Искал искал я по форумам но так и не нашел верней нашел но не понял =) var query = 'select * from html where...

Как вставить в dle 10.4 видео с другого сайта?
Понимаю что миллион раз тут обсуждалось, прочитала все темы но мне ничего непомогло...Делала с помощью дополнительных полей... в...

Текущий элемент списка - текущий элемент формы
Добрый день. Логика такая Список - выделенный элемент - текущий элемент - подробная информация. Пробывал делать через мастер,...

Взять элемент с другого сайта
Можно ли в Jquery взять элемент div по id из другого сайта по url или по iframe?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru