使用 Javascript 从浏览器的视图源代码功能中获取 HTML
Get HTML from browser's view-source functionality using Javascript
是否可以通过使用浏览器的功能视图源代码以某种方式将HTML代码放入Javascript字符串中:
view-source:http://www.google.com
我正在尝试使用这样的代码,但是我收到有关未定义文档的错误:
document.getElementsByTagName('html')[0].innerHTML;
我知道跨域请求是不可能的,除非使用某种黑客,但这看起来要容易得多,尽管获取代码非常困难。我不想访问网站以防止图像和CSS加载。
您无法从其他域读取数据,除非它与您合作。
如果你有这种合作,你可以简单地发送一个CORS AJAX请求。
这是在火狐中做到这一点的一种方法。 它不适用于其他任何地方 AFAIK 。为了简单起见,我使用了 alert() 和同步"ajax",但对于任何 ajax 库,异步版本都是微不足道的。
最主要的是让 Firefox 的漂亮视图源 HTML 回来,它指示行号、HTML 错误以及将 HTML 部分(如属性和内容)标记为语义包装器。 这是我所知道的在没有互联网连接的情况下在浏览器中验证 HTML 的唯一方法......
// sync url fetcher function:
function IO(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send();return b.responseText}
// create a new iframe to show the source code:
var fr=document.createElement("iframe");
// when it loads, let's view it using a simple alert()
fr.onload=function(){
alert(win.document.documentElement.outerHTML);
document.body.removeChild(fr);
};
// now add the frame into the document:
document.body.appendChild(fr);
// now assign the view-source url to the frame to trigger it's onload()
url= "/"; //just use site's home page for this demo
fr.src="view-source:data:text/html,"+escape( IO( url ) );
哦,当然,这仅适用于您域上的 URL 或使用 CORS 设置的 URL。
适用于Chrome和Firefox。野生动物园假设。IE 未经测试。
document.querySelector('html').innerHTML
*编辑我认为您的错误来自其他地方。这种说法虽然笨拙,但却是完全有效的。
如果您收到有关未定义文档的错误,那么您是在文档对象准备就绪之前执行此操作(您是在等待 DOMREADY 还是加载?)或它在 DOM 接口之外执行(Web worker?)。
相关文章:
- 正在获取select上的功能id
- 在谷歌api v3中使用地理自动完成功能获取邮政编码
- jQuery点击功能在获取请求后不起作用
- 如何使用位置获取滚动功能获取 HTML 中的元素标签
- 如何创建一个脚本,该脚本给定网站列表,它使用其搜索功能来获取信息
- 正在尝试获取此代码'在wordpress页面中工作的功能
- JavaScript/jQuery:获取选择功能在Firefox和Chrome中不起作用
- 仅通过 Google 地图 API 自动完成功能获取城市名称
- 使用 firebase 获取$add angular 应用程序不是一个功能
- 如何从 html 的文本字段获取值到 JavaScript 功能
- 从数据库中获取图像并将其链接到php中的功能或新闻等
- Javascript - 更快的功能:线性列表搜索或获取对象值
- 如何在单击按钮上获取JavaScript功能
- 如何从控制器功能内部获取$scope
- 在功能挂钩之前获取功能名称
- Node.js selenium webdriver - 在测试中获取浏览器功能
- 使用 Javascript 从浏览器的视图源代码功能中获取 HTML
- 获取两个位置之间的距离和时间的功能
- 快速滚筒嘘声+获取文本功能
- 浏览器自动阻止获取用户媒体功能