2016-11-21 8 views
0

Я использую ESP8266, и это HTML-часть программы. Я копирую и вставляю из глубины Интернета и хочу изменить HTML-страницу файла. В каком формате я могу добавить html-код? Благодаря! (Я пытался ввести текстовое поле ввода, но я хочу добавить много элементов HTML позже).ESP8266 html код страницы, интегрированный в .ino-файл

const String HtmlHtml = "<html><head>" 
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /></head>";` 
const String HtmlHtmlClose = "</html>"; 
const String HtmlTitle = "<h1>Arduino-er: ESP8266 AP WebServer exercise</h1><br/>\n"; 
const String HtmlLedStateLow = "<big>LED is now <b>ON</b></big><br/>\n"; 
const String HtmlLedStateHigh = "<big>LED is now <b>OFF</b></big><br/>\n"; 
const String HtmlButtons = 
"<a href=\"LEDOn\"><button style=\"display: block; width: 100%;\">ON</button></a><br/>" 
"<a href=\"LEDOff\"><button style=\"display: block; width: 100%;\">OFF</button></a><br/>"; 
+0

вы хотите записать все эти строки в файл цели. '' не является допустимой первой строкой на веб-странице HTML. Блок '' заканчивается в нижней части веб-страницы, а не «обычно» сразу после конца блока «». Есть целый ряд других вещей, которые необходимы в блоке '', кроме того, что опубликовано. В опубликованном коде отсутствует блок '', в котором должны находиться те ссылки . Предложите записать желаемую HTML-страницу, затем вставьте все необходимые операторы, чтобы сохранить ее в файле, или отобразите ее в веб-браузере. – user3629249

ответ

0

Я предполагаю, что у вас позже есть часть, где вы объединяете переменные и делаете один большой, который вы используете для dispalay html. Вы можете сделать что-то подобное.

-Open редактора и копирование/вставка коды из вашего поста

-Edit как вы хотите

-удалено переменные в коде, который вы размещены и заменить один, пример

const String wholePage = "INSERT YOUR HTML"; 

-И чем на линии, где вы добавили переменные, прежде чем просто использовать свой новый, где весь код HTML

Надеюсь, это поможет! :)

+0

спасибо, что это делает waaaayyy больше смысла сейчас! есть способ, которым я могу взять информацию, введенную в текстовое поле

в html, и сохранить ее в eeprom и вывести ее на веб-страницу, введя пароль в одно текстовое поле? –

1

Yo может передавать HTML-файл из SPIFFS. Вот example:

Вы должны получить streamFile() функции, как обозначено ниже:

String contentType = "text/html"; 
    if(SPIFFS.exists(path)){ 
    File file = SPIFFS.open(path, "r"); 
    size_t sent = server.streamFile(file, contentType); 
    file.close(); 
    return true; 
    } 
+0

Могу ли я сохранить информацию, введенную в , в eeprom и просмотреть ее позже. –

+0

В этом примере демонстрируется способ подачи файлов, это поможет вам иметь читаемые html-файлы. Если вы хотите сохранить запрос, который поступает на ваш веб-сервер через эту страницу, конечно, вы можете сохранить его, но в другом файле. Для этого вы можете следовать [руководству] (https://github.com/esp8266/Arduino/blob/master/doc/filesystem.md). – cagdas

+0

есть способ, которым я могу использовать SPIFFS.open (путь, режим) в месте ответаHTML в этом фрагменте кода: dnsServer.start (DNS_PORT, "*", apIP); // повторить все запросы с одинаковым HTML webServer.onNotFound ([]() { webServer.send (200, "text/html", responseHTML); }); webServer.начать(); } –

0

Вы можете рассмотреть его очистку, чтобы использовать неэкранированный синтаксис многострочные:

void handleAbout() { 
    const char* message = R"foo(
    <!doctype html> 
    <html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>test</title> 
    <link rel=stylesheet type=text/css href='//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css' /> 
    </head><body class=container> 
    <h1>testing</h1> 
    <main> 
    <h3>Status</h3> 
     <ul> 
     <li>Mode: <b>[[MODE]]</b> 
     <li><a href=/reset >reboot device</a> 
     </ul> 
    </main> 
    </body> 
    </html> 
    )foo"; 

    String message2= String(message); 
    // templating replaces string-concat functionality: 
    message2.replace("[[MODE]]", String(inputMode)); 
    // prove it's a usable String to the esp: 
    server.send(200, "text/html", message2); 
} // end about section handler 

Вы также можете использовать любой онлайн-кодировщик text-to-json, чтобы сделать C-friendly экранированные строковые литералы произвольным текстом. ex: my slim's "JSON.stringify" трансформация двигателя ...