我正在创建一个chrome扩展程序,用于从用户浏览的页面中提取h2>
的内部文本。虽然我学习了内容脚本并且已经使用它但是它不起作用我不知道问题出在哪里。如果有人能帮助我,我将不胜感激。
这是js代码:
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('button');
link.addEventListener('click', function() {
updateresult();
});
});
function updateresult() {
var i;
var x =document.getElementsByTagName("h2");
for(i=0; i< x.length ; i++)
{
document.getElementById("result").innerHTML = (x[i].innerHTML + "\n");
}}
这是我正在使用的清单文件:
{
"manifest_version": 2,
"name": "Header Extractor",
"description": "Extension to search header",
"version": "1.0",
"browser_action": {
"default_icon": "icon.png",
"16": "icon.png",
"48": "icon.png",
"128": "icon.png",
"default_popup":"popup.html",
"default_title": "Open And Search headers"
},
"permissions": [
"storage",
"activeTab" ,"tabs"
],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": [ "popup.js"],
"run_at": "document_end"
}
]
}
答案 0 :(得分:0)
您是否已创建结果div
以将结果粘贴到其中?
此外,您当前的函数仅返回一个h2值。让我们使用concat
将它们全部输出。
function updateresult() {
var i;
var x = document.getElementsByTagName("h2");
var string = "";
for(i=0; i<x.length; i++)
{
string.concat(x[i].innerText + "\n");
}
document.getElementById("result").innerText = string;
}
作为旁注,我们改为使用innerText
。