我正在使用Javascript为浏览器编写扩展程序。如何获取整个HTML源代码并重新编写?
我需要更改该源内的一些单词并重新打开该页面。
答案 0 :(得分:3)
在javascript中,您可以尝试以下内容:
var source = document.documentElement.outerHTML;
...并获取doctype:
var doctype = document.doctype;
来源:Get the whole document's html with JavaScript/JQuery
我还发现此帖子涉及在Chrome扩展程序中执行相同操作,如果这有帮助:
Getting the source HTML of the current page from chrome extension
答案 1 :(得分:1)
尝试这样的方法来获取页面源:
document.documentElement.innerHTML
这要改变它:
document.documentElement.innerHTML = '<body>I like pie</body>'
document.documentElement
是页面上的<html> ... </html>
元素,而innerHTML
将提供它的HTML。
答案 2 :(得分:1)
您可以通过以下方式获取整个页面的来源:
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 selectors,,例如:
oldText = $("#idOfElement").html();
oldText = $(".classOfElement").html();
oldText = $("tagName:nth-child(1)").html();
$("#idOfElement").html(newText);
$(".classOfElement").html(newText);
$("tagName:nth-child(1)").html(newText);
其中:nth-child(1)
表示您正在寻找页面上具有特定标记名称的第一个元素。如果有多个元素具有相同的类名,您也可以在搜索类时使用它。