使用Google扩展程序替换包含新内容的网站上的div内容

时间:2013-02-18 03:11:21

标签: javascript jquery google-chrome-extension

我正在为我的朋友们做这个恶作剧。我不是一个经验丰富的程序员,虽然我想成为一天,但我只有有限的时间对我的朋友做恶作剧。所以这是交易。我使用网页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并更改它,或者这是否是正确的方法。我听见了,请帮助我!

1 个答案:

答案 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。然后你可以从那里构建东西。