我之前已经问过这个问题,但我的代码仍然没有工作,我不知道为什么;我试图制作一个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的问题,因为控制台日志错误是' $未定义'。抱歉!在这里完成初学者:(
答案 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以获取更多信息。