【问题标题】:Is it possible to link the 'view-source:' of an external page?是否可以链接外部页面的“查看源:”?
【发布时间】:2014-04-16 02:32:51
【问题描述】:

我尝试使用<a href="view-source:google.com">External Source</a>,但这只会返回一个损坏的链接。

【问题讨论】:

  • 我相信这将是特定于浏览器的。您是否针对特定的浏览器?
  • 不,只是想知道是否有标准。我刚刚看到这个教程,它让我相信没有黑客是不可能的css-tricks.com/make-a-view-source-button

标签: html view-source


【解决方案1】:

如果您只需要网页的 HTML 源代码,而不需要其他任何内容,并且愿意使用服务器端语言,则可以选择使用 curlfile_get_contents、或 Simple HTML DOM 获取网站的 HTML,然后将其显示在您自己的页面上 <code></code><pre></pre> 标记之间。这在 PHP 中看起来像这样

include("simplehtmldom.php");
$html=file_get_html($url);
echo "<pre>$html</pre>;

显然这应该是格式化的或漂亮的打印。看看Google Code prettifier 来做到这一点。如果你想获得你自己的页面的来源,你可以使用Javascript,然后这样做:

var html=document.documentElement.outerHTML;

我不确定这将如何用于获取外部页面,但您可以尝试iframe,就像这样

document.getElementById('frame').contentWindow.documentElement.outerHTML;

【讨论】:

  • 我最近没有使用 PHP,所以如果我错了请纠正我,但看起来这会将未转义的内容直接包含到您的输出中。包含来自外部站点的源而不转义它是一个严重的安全风险。
  • @NickUrban 我不这么认为,特别是如果你只是用file_get_html获取html
  • 如果您要注入未转义的代码,它很容易包含
  • @NickUrban 好点,我忘记了。可能,您只想用它们的实体编号替换所有特殊字符,例如 &"'
【解决方案2】:

架构/协议http: 丢失:

外部来源`

用 scURIple (scriple) 测试:

data:text/html;charset=utf-8,<html><a href="view-source:http:google.com">External Source</a></html>

【讨论】:

【解决方案3】:

作为在&lt;pre&gt; 块中输出所有内容的替代方法,请考虑返回不同的内容类型。在您的响应标题中:

Content-Type: text/plain

然后,您可以简单地返回 HTML 内容,它将在浏览器中显示为纯文本。

【讨论】:

  • 这是...来自 PHP?谢谢。
  • @DanRosenstark 不,它只是一个 HTTP 响应标头。你可以用你在服务​​器端运行的任何东西发送它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-16
  • 2011-06-01
  • 2017-11-23
  • 2011-02-05
  • 2011-06-19
相关资源
最近更新 更多