我正在使用 Javascript 为浏览器编写扩展。如何获取整个 HTML 源代码并重新编写?
我需要更改该源中的一些单词并重新打开该页面。
在 javascript 中,您可以尝试以下操作:
var source = document.documentElement.outerHTML;
...并获得 doctype 使用:
var doctype = document.doctype;
来源:使用 JavaScript/JQuery 获取整个文档的 html
如果这有帮助,我还发现了这篇关于在 Chrome 扩展程序中做同样事情的帖子:
您可以通过以下方式获取整个页面的来源:
oldSource = document.getElementsByTagName("html")[0].innerHTML;
然后将整个页面替换为:
document.write(newSource);
或者,如果您想替换页面上的几个元素,请使用以下方法之一:
如果你知道id
元素的:
oldText = document.getElementById("idOfElement").innerHTML;
document.getElementById("idOfElement").innerHTML = newText;
如果你知道class
元素的:
oldText = document.getElementsByTagName("classOfElement")[0].innerHTML;
document.getElementsByTagName("classOfElement")[0].innerHTML = newText;
(这0
意味着您正在寻找页面上具有特定类名的第一个元素)
如果您知道元素的标签名称:
oldText = document.getElementsByClassName("tagName")[0].innerHTML;
document.getElementsByClassName("tagName")[0].innerHTML = newText;
(这0
意味着您正在寻找页面上具有特定标签名称的第一个元素)
或者,您可以使用jQuery 选择器,例如:
oldText = $("#idOfElement").html();
oldText = $(".classOfElement").html();
oldText = $("tagName:nth-child(1)").html();
$("#idOfElement").html(newText);
$(".classOfElement").html(newText);
$("tagName:nth-child(1)").html(newText);
Where:nth-child(1)
表示您正在寻找页面上具有特定标签名称的第一个元素。如果有多个具有相同类名的元素,您也可以在搜索类时使用它。
尝试这样的事情来获取页面源:
document.documentElement.innerHTML
这要改变它:
document.documentElement.innerHTML = '<body>I like pie</body>'
document.documentElement
是<html> ... </html>
页面上的元素,innerHTML
将给出它的 HTML。