Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Просмотр и копирование HTML CSS JS кода с кнопочных телефонов... (https://javascript.ru/forum/misc/76450-prosmotr-i-kopirovanie-html-css-js-koda-s-knopochnykh-telefonov.html)

m~r.Nemo 13.01.2019 09:12

laimas,
Если чужой домен даёт доступ, это возможно сделать?

Какую форму? Какой сервер? я спрашиваю про возможность просто показать страницу в поле

Malleys 13.01.2019 09:25

<form onsubmit="process(this); return false;">
	<input type="url" placeholder="введи URL" autocomplete="url" name="url" required list="urls">
	<datalist id="urls">
		<option>https://google.com/</option>
		<option>https://stackoverflow.com/</option>
		<option>https://yandex.ru/</option>
		<option>https://wikipedia.org/</option>
	</datalist>
	<button type="submit">Запуск!</button>
	<button type="reset">Сброс</button>
	<textarea hidden placeholder="здесь будет ответ"></textarea>
</form>
<script>

	function process(form) {
		const textarea = form.querySelector("textarea");
		const resetButton = form.querySelector("[type='reset']");
		resetButton.onclick = () => textarea.hidden = true;
		textarea.hidden = false;
		textarea.value = "Загрузка...";
		
		fetch(`https://cors-anywhere.herokuapp.com/${form.querySelector("[type='url']").value}`)
			.then(response => response.text())
			.then(text => {
				textarea.value = text;
			})
			.catch(error => {
				textarea.value = error.message;
			})
		;
	}
	
</script>
<style>
	form {
		display: grid;
		grid-gap: 1em;
		grid-template-columns: 1fr auto auto;
	}
	textarea {
		grid-row-start: 2;
		grid-column: span 3;
		min-height: 30em;
	}
</style>


попробуйте, например, этот адрес из списка или свой какой-либо

UPD Добавил CORS Proxy, теперь возможно скачивать любой сайт, удалите из кода https://cors-anywhere.herokuapp.com/ если вам нужен чистый запрос.

UPD2 Добавил кнопку сброса

UPD3 Для немного старых браузеров...

<form onsubmit="process(this); return false;">
	<input type="url" placeholder="введи URL" autocomplete="url" name="url" required list="urls">
	<datalist id="urls">
		<option>https://google.com/</option>
		<option>https://stackoverflow.com/</option>
		<option>https://yandex.ru/</option>
		<option>https://wikipedia.org/</option>
	</datalist>
	<button type="submit">Запуск!</button>
	<button type="reset">Сброс</button>
	<textarea hidden placeholder="здесь будет ответ"></textarea>
</form>
<style>
	
form {
	display: flex;
	flex-wrap: wrap;
}

input:first-of-type {
	flex: 1;
}

textarea {
	flex: 100%;
	min-height: 30em;
}

</style>
<script src="https://polyfill.io/v3/polyfill.min.js?features=default%2Cfetch"></script>
<script>

function process(form) {
	var textarea = form.querySelector("textarea");
	var resetButton = form.querySelector("[type='reset']");
	resetButton.onclick = function() { textarea.hidden = true }
	textarea.hidden = false;
	textarea.value = "Загрузка...";
	
	fetch("https://cors-anywhere.herokuapp.com/" + form.querySelector("[type='url']").value)
		.then(function(response) { return response.text() })
		.then(function(text) {
			textarea.value = text;
		})
		.catch(function(error) {
			textarea.value = error.message;
		})
	;
}

</script>

m~r.Nemo 13.01.2019 14:20

Malleys,
Ввёл, и пусто, даже поля для ввода пропали

m~r.Nemo 13.01.2019 16:06

Народ, кто поможет поправить скрипт?

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Просмотр HTML кода</title>
<style>
html, body { margin: 0; padding: 20px; font-family: Arial, sans-serif; font-size: 16px; }
input { border: 1px solid #008000; }
button { display: inline-block; min-width: 100px; margin: 5px; padding: 8px; }
textarea { width: 500px; height: 200px; border: 1px solid #008000; }
#top { height: 120px; }
#bottom { height: 100%; margin-top: 10px; padding-top: 10px; }
</style>
</head>
<html>9
<body>
<div id="top">
Введите URL:<br/>
<input type="url" id="url" placeholder="http:// или https://"><br/>
<input type="text" id="data"><br/>
<button id="get">GET</button> <button id="post">POST</button>
</div>
<div id="bottom">
<textarea id="output"></textarea><br/>
<input type="button" value="Скрыть">
</div>
<script>
var cors_api_url = 'https://cors-anywhere.herokuapp.com/';
function doCORSRequest(options, printResult) {
var x = new XMLHttpRequest();
x.open(options.method, cors_api_url + options.url);
x.onload = x.onerror = function() {
printResult(
options.method + ' ' + options.url + 'n' +
        x.status + ' ' + x.statusText + 'nn' +
(x.responseText || '')
);
};
if (/^POST/i.test(options.method)) {
      x.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
}
x.send(options.data);
}
// Bind event
(function() {
var urlField = document.getElementById('url');
var dataField = document.getElementById('data');
var outputField = document.getElementById('output');
    document.getElementById('get').onclick =
    document.getElementById('post').onclick = function(e) {
e.preventDefault();
doCORSRequest({
method: this.id === 'post' ? 'POST' : 'GET',
url: urlField.value,
data: dataField.value
}, function printResult(result) {
outputField.value = result;
});
};
})();
if (typeof console === 'object') {
console.log('// To test a local CORS Anywhere server, set cors_api_url. For example:');
console.log('cors_api_url = "http://localhost:8080/"');
}
</script>
</body>
</html>


Я просто не могу понять, причём тут поле для даты и эти post get, как их убрать и заменить на кнопку submit? И как сделать чтобы див с техтареа был скрыт появлялся только после нажатия на submit, а после нажатия на button очищались поля и див с техтареа скрывался?

Malleys 13.01.2019 18:23

Цитата:

Сообщение от m~r.Nemo
Ввёл, и пусто, даже поля для ввода пропали

Проверил в последних версиях Crome, Firefox, Edge. Возможно вам нужно обновление, или скачайте себе современный браузер(не IE)! https://browsehappy.com/

Цитата:

Сообщение от m~r.Nemo
И как сделать чтобы див с техтареа был скрыт появлялся только после нажатия на submit, а после нажатия на button очищались поля и див с техтареа скрывался?

Смотрите пост №12 выше, добавил кнопку сброса

m~r.Nemo 13.01.2019 21:28

Malleys,
Возможно дело в том, что я пытаюсь посмотреть с сенсорного телефона андроида, через хром? Когда то лет ...надцать назад, когда я только начинал пытатся понять html css, это для меня было огромной проблемой посмотреть код, с кнопочной нокия с экраном 128 х 160 пикселей, потом как то нашёл сайт http://bertal.ru какое то время пользовался этим сервисом, потом такая необходимость отпала с доступностью сенсоров, нажал на экран выделил текст или код и всё, но идея облегчить процесс новичкам и замутить простенький подобный сервис, меня не оставляла...
Хотелось бы чтобы можно было пользоваться и с любого телефона (как видно из названия темы), и с компа, правда ИЕ настолько устарел что никому не интересен, главное чтобы с нормальных браузеров работало.

m~r.Nemo 13.01.2019 21:57

Цитата:

Сообщение от Malleys (Сообщение 501936)
Смотрите пост №12 выше, добавил кнопку сброса

Ну как бы эта не очень то и нужна на главной, удалить 10-20 символов из поля для адреса не сложно, а вот после полученого километрового кода необходима.

m~r.Nemo 15.01.2019 06:32

Malleys,
Всё равно с тела не работает, просто очищается поле для ввода адреса и всё

Malleys 15.01.2019 08:41

Цитата:

Сообщение от m~r.Nemo
Всё равно с тела не работает

Какая версия браузера? https://2ip.ru/

UPD
Цитата:

Сообщение от m~r.Nemo
Операционная система:
Android 4.4.2 Android 4.4.2
Ваш браузер:
Chrome 40.0.2214.109

Смотрите UPD3 выше https://javascript.ru/forum/showthre...079#post501902

А обновить браузер никак? А то уже пошли 70 версии.

m~r.Nemo 15.01.2019 09:12

Операционная система:
Android 4.4.2 Android 4.4.2
Ваш браузер:
Chrome 40.0.2214.109


Часовой пояс GMT +3, время: 03:19.