Проверьте HTML-документ, который я написал с document.write () - PullRequest
0 голосов
/ 26 сентября 2011

Хорошо, во-первых, позвольте мне заявить, что Я знаю, что никогда не должен делать этого ни при каких обстоятельствах для реального сайта .Хорошо.Это не по пути.

Один из моих коллег говорил, что Javascript не является «настоящим» языком программирования (его определение «реального» кажется «компилируемым»), потому что это зависит от другихязыки, чтобы делать свое дело.

Я сказал ему, что могу написать сайт, используя только javascript.

Я уверен, что это можно сделать, используя document.write (''), чтобы получитьdoctype и некоторый скрипт для создания dom и стилей ... но проблема в том, что страница проверяется без JS, и он не может показать ему, что то, на что смотрит браузер, действительно проверяет.

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

Ответы [ 3 ]

1 голос
/ 26 сентября 2011

Загрузить сайт в Firefox с установленным Firebug.Запустите представление «HTML», щелкните правой кнопкой мыши узел <html> и выберите «Копировать HTML».

1 голос
/ 26 сентября 2011

Если вы действительно хотите продемонстрировать, что JS является «настоящим» языком, то вам, вероятно, было бы лучше не использовать браузер в качестве основы.Сервер node.js позволит вам генерировать HTML-документ (если хотите, с использованием document.write, но DOM - вариант), и люди используют клиентские библиотеки для манипулирования документом в узле.

Поскольку JS работает на сервере, вы можете получить фактический источник из браузера через view-source или указать валидатор непосредственно на URI (если он общедоступен или вы устанавливаете его). локальная копия валидатора)

0 голосов
/ 26 сентября 2011

Ближе всего вы используете JavaScript:

var generatedHTML = document.documentElement.innerHTML;
//Retrieves everything within the (missing)HTML tags.
//The only missing parts are DOCTYPE and the <html> itself

var txt = document.createElement("textarea");
txt.style.cssText = "width:99%;height:99%;position:fixed;z-index:999;top:0;left:0";
txt.value = generatedHTML;
txt.ondblclick = function(){this.parentNode.removeChild(this)};
//Adding a simple function to easily remove the textarea once finished

document.body.appendChild(txt);

Bookmarklet (я немного скорректировал код, чтобы он был компактным):

javascript:void(function(){var t=document.createElement("textarea");t.style.cssText = "width:99%;height:99%;position:fixed;z-index:999;top:0;left:0";t.value=document.documentElement.innerHTML;txt.ondblclick=function(){t.parentNode.removeChild(t)};document.body.appendChild(t)})()
  1. Сфокусируйте сгенерированную текстовую область
  2. Вручную добавьте теги DOCTYPE + <html>
  3. Скопируйте содержимое текстовой области в валидатор по адресу: http://validator.w3.org/#validate-by-input
...