[英]Chrome HTML Inspector: Copy original source (and not modified DOM)
[英]"Copy as HTML" on nested IFrame elements in Chrome Inspector
在 Chrome 的网络检查器中,如果您右键单击 DOM 元素,会出现一个“复制为 HTML”选项,通常会为您提供该元素及其所有子元素的 HTML 字符串。 但是,它似乎从未包含 IFrame 标记的内容,尽管它们在检查器中显示为子节点。
问题不是由跨域限制引起的:即使是相同域的 IFrame 也被排除在复制的 HTML 之外。
除了复制和粘贴每个嵌套 IFrame 的 HTML 根目录并在文本编辑器中手动将它们拼接在一起之外,有什么办法可以解决这个问题吗? 我在一个网站工作,该网站的第三方广告脚本通常会产生庞大的嵌套 IFrame 树,我需要一种方法让同事能够复制并粘贴该结构,这样我就可以在不坐下来的情况下调试广告问题在他们的办公桌上。
我相信谷歌浏览器已经在他们的浏览器中的某个地方硬编码了行为,但我没有时间找到代码部分。
这是一个解决方法,它将使用谷歌浏览器从网页上当前的所有 iframe 中获取 html。
DisplayIframeContent.js
会产生这样的错误。不安全的 JavaScript 尝试使用 URL 访问框架...
例子:
cd 位置\OF\GOOGLE\CHROME
chrome.exe --disable-web-security
当 Google Chrome 加载时,您应该会看到一条黄色警告,说明:
您正在使用不受支持的命令行标志:--disable-web-security。 稳定和安全将受到影响。
DisplayIframeContent.js
复制并粘贴到控制台中。DisplayIframeContent.js
// @author Larry Battle <bateru.com/news> 12.13.2012
// requires jQuery 1.8.3+
clear();
if( !$("iframe").length ){
console.log("No iframes were found");
}else{
$("iframe").each(function (i) {
console.log( "### iframe[%s].src = (%s)", i, $(this).attr("src") );
console.log( $(this).contents().find("html").html() )
});
}
"done";
示例 URL:http: //jsfiddle.net/28yrA/输出:
### iframe[0].src = (javascript:false)
...HTML...
### iframe[1].src = (javascript:false)
...HTML...
### iframe[2].src = (javascript:false)
...HTML...
### iframe[3].src = (http://fiddle.jshell.net/28yrA/show/)
...HTML...
"done"
我终于找到了一个解决方案,通过 DW-dev 的名为Save Page WE的 Chrome 扩展。
https://chrome.google.com/webstore/detail/save-page-we/dhhpefjklgkmgeafimnjhojgjamoafof
它也适用于 Firefox。https://addons.mozilla.org/en-US/firefox/addon/save-page-we/
另一个答案可能有效,但我不喜欢仅仅为了复制一些 html 而禁用安全性。
这是另一种更简单的恕我直言方式。
首先检查元素并复制iframe
元素,然后将其粘贴到您想要添加的任何位置。
结果应该是一个带有所有 it 属性的空iframe
标签:
<iframe src="src"></iframe>
现在在该iframe
中手动键入#document
和DOCTYPE
,这样您现在就有类似的内容:
<iframe>
#document
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
</iframe>
将 iframe 中文档的父节点复制为 html,它将复制所有子节点,就像复制普通的 html 页面一样。
只需粘贴回 doctype 下,您就拥有了整个iframe
。 最终结果应该是这个样子
<iframe>
#document
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<!-- All the child nodes -->
</html>
</iframe>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.