我正在为我的朋友们做这个恶作剧。我不是一个经验丰富的程序员,虽然我想成为一天,但我只有有限的时间对我的朋友做恶作剧。所以这是交易。我使用网页https://www.webpage.com/lol/data.asp(由于此论坛对新用户有限制,因此将在代码中替换为URL)。在这个网站上有一个名为“data_div”的div,我想注入一些代码,所以当页面加载时(当我加载扩展名为c)时,div中的数据将被我的HTML文档中的数据替换。在本文档中,我只有一个表格,其中包含将替换原始表格的新数据。我该怎么办?
到目前为止,通过阅读论坛帖子(这里和elswhere)并使用谷歌帮助我,我从没有进行编程,因此我几乎没有取得任何进展。
这是我得到的代码。
的manifest.json
{ "name": "prank",
"version": "0.1",
"permissions": [
"URL"
],
"content_scripts": [
{
"matches": ["JQUERY URL", "URL"],
"js": ["jquery-1.9.1.min.js", "myscript.js"],
"run_at": "document_end"
}
],
"manifest_version": 2
}
myscript.js
chrome.extension.sendRequest({cmd: "read_file"}, function(html){
$("data_div").html(html);
});
background.html
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if(request.cmd == "read_file") {
$.ajax({
url: chrome.extension.getURL("cont.html"),
dataType: "html",
success: sendResponse
});
}
})
和cont.html中的HTML表格内容。
这不起作用,如果有人可以做这项工作,或者给我写一件有用的东西,我会非常感激。
当我进入网站时,扩展加载但没有做任何事情。我甚至不确定我是否可以访问网站上的div并更改它,或者这是否是正确的方法。我听见了,请帮助我!
答案 0 :(得分:0)
我认为你的jquery选择器在这一行中是错误的:
$("data_div").html(html);
您需要在#或或前面加上data_div。取决于标记。
在你的问题中,你说div被称为data_div,我不确定这究竟是什么意思。以下是我可以想到的三个选项,您可能想要的是什么以及您需要使用的相应选择器: 这里的数据使用这个选择器:$(“#data_div”) 这里的数据使用这个选择器:$(“。data_div”) 这里的数据使用这个选择器:$(“div [name = data_div]”)
如果您需要更多信息,可以阅读有关JQuery selectors的文档。
为了使调试更简单,请尝试将脚本内容更改为(删除所有ajax调用):
$(“#data_div”)。html('some test content');
如果这样可行,您知道问题不在于您的选择器,而是在于ajax。然后你可以从那里构建东西。