Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2021, 23:03
Аспирант
Отправить личное сообщение для Konstantin47 Посмотреть профиль Найти все сообщения от Konstantin47
 
Регистрация: 12.01.2021
Сообщений: 32

Подскажите, как оформить работающую функцию FETCH
(async () => {
    const response = await fetch('https://api.spacexdata.com/v4/starlink/');
    const data = await response.json();
    for(const starlink of data) {
        document.write(`<p>${starlink.id}</p>`);
    }
})();


Это работает, но
как можно это оформить в виде функции с именем, чтобы повесить onclick?

мне вот это вступление покоя не даЕт (async () (с)
эта часть с примера - просто function name(){ и вся фунцкия пробовал, но не работает)}
до этого я подходил вообще так
const textButton = document.getElementById('number');

const outputDiv = document.getElementById('output');

const textURL = 'https://api.spacexdata.com/v4/starlink';


textButton.addEventListener('click', () => {
    fetch(textURL)
        .then( response => {
            outputDiv.innerHTML = 'Proszę poczekać';
            if(response.ok) {
                return response;
            } throw Error(response.statusText);
        })
        .then( response => response.text() )
        .then( text => outputDiv.innerText = text )
        .catch( error => console.log('There was an error:', error))
},	false);


работает и клик работает, но оказалось, нельзя через текст

Cпасибо
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2021, 23:11
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от Konstantin47
как можно это оформить в виде функции с именем, чтобы повесить onclick?
Как вариант..

<!DOCTYPE html>
<html>
<head>
<!--
<script src='https://code.jquery.com/jquery-latest.min.js'></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>

document.addEventListener("DOMContentLoaded", () => {
	document.getElementById('btn').addEventListener('click',test)
	function test() {
		alert(1)
		/*
		(async () => {
			const response = await fetch('https://api.spacexdata.com/v4/starlink/');
			const data = await response.json();
			for(const starlink of data) {
				document.write(`<p>${starlink.id}</p>`);
			}
		})();
		*/
	}
})

</script>
</head>
<body> 
<button id='btn'>Ok</button>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2021, 23:17
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Konstantin47,
создавайте свои темы здесь Общие вопросы Javascript
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2021, 23:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Konstantin47,
<!DOCTYPE html>
<html>
<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <script>
document.addEventListener( "DOMContentLoaded" , function() {
const spacex = async () => {
    const response = await fetch('https://api.spacexdata.com/v4/starlink/');
    let data = await response.json();
    data = data.map(({id}) => `<p>${id}<\/p>`).join('');
    out.insertAdjacentHTML('beforeend', data)
};
    btn.addEventListener('click', spacex)
  });
    </script>
</head>
<body>
<button id='btn'>Ok</button>
<output id="out"></output>
</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 27.03.2021, 23:40
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

А какие тут вообще проблемы?
<!DOCTYPE html>
<html>
<head>
<script>
async function test() {
	const response = await fetch('https://api.spacexdata.com/v4/starlink/');
	const data = await response.json();
	for(const starlink of data) {
		document.write(`<p>${starlink.id}</p>`);
	}
}
</script>
</head>
<body>
<button id='btn' onclick="test()">Ok</button>
</body>
</html>
Ответить с цитированием
  #6 (permalink)  
Старый 27.03.2021, 23:49
Аспирант
Отправить личное сообщение для Konstantin47 Посмотреть профиль Найти все сообщения от Konstantin47
 
Регистрация: 12.01.2021
Сообщений: 32

где - создавать темы, понял. Спасибо большое всем за помощь
Ответить с цитированием
  #7 (permalink)  
Старый 30.03.2021, 11:12
Аспирант
Отправить личное сообщение для Konstantin47 Посмотреть профиль Найти все сообщения от Konstantin47
 
Регистрация: 12.01.2021
Сообщений: 32

Можно спросить, вот два варианта открывания информации. Почему через JSON показывает массив с ID номерами и все. Если зайти через консоль откроет тоже самое , что и через text. Что за это отвечает? какая строчка


<button id='number'>identyfikatory,nazwę,datę wystrzelenia</button>
<button id='btn'>identyfikatory,nazwę,datę wystrzelenia2</button>
<output id="out"></output>
<div id='output'>


const textButton = document.getElementById('number');

const outputDiv = document.getElementById('output');

const textURL = 'https://api.spacexdata.com/v4/starlink';


textButton.addEventListener('click', () => {
    fetch(textURL)
        .then( response => {
            outputDiv.innerHTML = 'Proszę poczekać';
            if(response.ok) {
                return response;
            } throw Error(response.statusText);
        })
        .then( response => response.text() )
        .then( text => outputDiv.innerText = text )
        .catch( error => console.log('There was an error:', error))
},	false);

document.addEventListener( "DOMContentLoaded" , function() {
const spacex = async () => {
    const response = await fetch('https://api.spacexdata.com/v4/starlink/');
	
    let data = await response.json();
    data = data.map(({id}) => `<p>${id}<\/p>`).join('');
    out.insertAdjacentHTML('beforeend', data)
};
    btn.addEventListener('click', spacex)
  });
Ответить с цитированием
  #8 (permalink)  
Старый 30.03.2021, 11:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

А что передается с сервера?

Что у вас открывается и что в консоле, при таком оформлении примера мы не увидим.
Ответить с цитированием
  #9 (permalink)  
Старый 30.03.2021, 23:34
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,584

Konstantin47, очевидно за показ только id отвечает строка в которой показывают только id:
data = data.map(({id}) => `<p>${id}<\/p>`).join('');


P.S. document.write? Серьёзно? Пацаны, вы чего? Konstantin47, забудь об этом дерьме пока молодой, станешь сеньёром - тогда можешь юзать.)
__________________
29375, 35

Последний раз редактировалось Aetae, 30.03.2021 в 23:38.
Ответить с цитированием
  #10 (permalink)  
Старый 31.03.2021, 13:09
Аспирант
Отправить личное сообщение для Konstantin47 Посмотреть профиль Найти все сообщения от Konstantin47
 
Регистрация: 12.01.2021
Сообщений: 32

Сообщение от Aetae Посмотреть сообщение
Konstantin47, очевидно за показ только id отвечает строка в которой показывают только id:
data = data.map(({id}) => `<p>${id}<\/p>`).join('');


P.S. document.write? Серьёзно? Пацаны, вы чего? Konstantin47, забудь об этом дерьме пока молодой, станешь сеньёром - тогда можешь юзать.)
PS простите, а, что юзать пока молодой?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как правильно оформить верстку bohdan_a (X)HTML/CSS 1 17.09.2019 11:45
Как вызвать функцию из переменной? sss2019 Общие вопросы Javascript 7 02.09.2014 13:34
Как можно активировать/деактивировать функцию Решатель Элементы интерфейса 2 31.10.2011 10:38
Как вызвать функцию из другого файла Mukhtar AJAX и COMET 4 07.10.2011 22:01
Подскажите как правильно оформить код frolvict Общие вопросы Javascript 4 30.04.2010 10:51