使用jquery

时间:2015-05-24 23:37:04

标签: javascript jquery google-chrome-extension

我之前已经问过这个问题,但我的代码仍然没有工作,我不知道为什么;我试图制作一个Chrome扩展程序来更改类的图像&profile;点击一下

这是我的代码到目前为止: background.js:

chrome.browserAction.onClicked.addListener(function (tab) {
    if (tab.url.indexOf("https://www.facebook.com") != -1) {
        chrome.tabs.executeScript(tab.id, {
            "file": "contentscript.js"
        }, function () { 
            console.log("Script Executed"); 
        });
    }
});

contentscript.js:

alert("alert");
$(document).ready(function() {
$(document).find('.profilePic img').attr('src', 'second.jpeg')    
});

的manifest.json

{
  "name": "stuff",
  "version": "0.0.1",
  "manifest_version": 2,

  // Recommended
  "description": "replaces fb profile pictures",
    "web_accessible_resources": [
    "second.jpeg"
  ],
 "background":{
            "scripts":["background.js"],
            "page": "background.html"
        },
         "permissions":["https://www.facebook.com/*"],
  "content_scripts": [
        {
            "matches":["http://www.facebook.com/*"],
            "js":["jquery-2.1.4.min.js","background.js","contentscript.js"],
            "all_frames": true,
            "run_at": "document_start"
        }
    ],
    "browser_action": {
  "default_icon": "icon.png",
  "default_title": "testing"
}
}

警告弹出正常,但没有任何改变......我的清单中已经包含了jquery 编辑:我认为这是上传jquery的问题,因为控制台日志错误是' $未定义'。抱歉!在这里完成初学者:(

1 个答案:

答案 0 :(得分:0)

这很可能是因为profilePic类用于img标记。 Facebook个人资料图片使用类profilePic和一个选择器,这可能是你绊倒的原因。如果它看起来像这样,那么当前形式的代码就可以工作,它将寻找profilePic类,然后在其中找到任何img标记,替换src属性。

<div class="profilePic">
<img src="https://www.google.com/images/srpr/logo11w.png">
</div>

但是因为你在图像上有profilePic类,你需要重构你的jQuery,所以看起来像这样

$(".profilePic").attr("src","second.jpeg");

你也可以这样做,我不完全确定Facebook通常是如何组合在一起的,但这是从我的页面中获取的。

$("#fbPageFinchProfilePic img").attr("src","second.jpeg");

您可以使用此JSFiddle测试:http://jsfiddle.net/u8zr55vz/1/

我希望有所帮助!请务必阅读jQuery .attr()here以获取更多信息。