Как написать демонстрационную страницу, которая предоставит код самого себя? - PullRequest
1 голос
/ 30 августа 2011

Предположим, вы сделали демо (веб-страницу) вашего продукта, вы хотите создать страницу для отображения демо, а в нижней части страницы есть кнопка, по которой вы можете отобразить исходный код. из демо выше. Как хорошо выполнить эту работу?

Ответы [ 2 ]

1 голос
/ 30 августа 2011

Следующее должно работать как минимум в Firefox (через XMLSerializer ), Internet Explorer, Chrome и Safari (через outerHTML ).В браузерах, которые не поддерживают ни то, ни другое, он вернется к innerHTML, но недостатком будет то, что сам корневой элемент (<html>) не будет включен.

function getMyCode()
{
  if ("XMLSerializer" in window)
    return new XMLSerializer().serializeToString(document.documentElement);
  else if ("outerHTML" in document.documentElement)
    return document.documentElement.outerHTML;
  else
    return document.documentElement.innerHTML;
}

Опять же, если вы хотите "настоящий"«Исходный код, а не сериализованную версию DOM, вы не сможете загрузить снова - браузер не обязательно сохранит его.Вы можете использовать XMLHttpRequest :

function getMyCode()
{
  var req = new XMLHttpRequest();
  req.open("GET", window.location.href);
  req.onreadystatechange = function()
  {
    if (this.readyState != 4)
      return;
    alert(this.responseText);
  };
  req.send(null);
}
0 голосов
/ 30 августа 2011

Сделайте запрос к той же странице и убедитесь, что сервер отвечает с Content-Type, установленным в «text / plain» вместо «text / html».Если это сценарий на стороне сервера, то вы можете использовать параметры запроса, чтобы определить, когда установить Content-Type на «text / html» или «text / plain».Если это статическая веб-страница, вы можете создавать разные URI с разными типами контента.

...