1

假设你已经为你的产品做了一个demo(网页),你想制作一个页面来展示demo,在页面底部,有一个按钮可以点击展示demo的源代码以上。如何很好地完成这项工作?

4

2 回答 2

1

以下内容至少应该在 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);
}
于 2011-08-30T09:21:29.563 回答
0

向同一页面发出请求,并确保服务器响应的 Content-Type 设置为“text/plain”而不是“text/html”。如果是服务器端脚本,那么您可以使用查询参数来确定何时将 Content-Type 设置为“text/html”或“text/plain”。如果是静态网页,可以制作不同内容类型的不同URI。

于 2011-08-30T09:25:20.180 回答