我正在开发一个Chrome扩展程序,该扩展程序必须在Unicode表情符号和Firebase上存储的图像之间交换,因为用户单击了该扩展程序的html页面上的按钮。它可以在Facebook上运行,但不能在Twitter上运行,因为后者不允许加载来自无法识别来源的资源。我尝试遵循Google(https://developer.chrome.com/apps/app_external#external)提供的示例,但它不会更改图像。
content-script.js
chrome.runtime.onMessage.addListener(function(msg, _, sendResponse) {
console.log('onMessage', msg);
if (msg.greeting == "hello") {
let images = document.getElementsByClassName('css-1dbjc4n r-1niwhzg r-vvn4in');
for(let i = 0; i < images.length; i++) {
if (images[i].style.backgroundImage.includes('1f911')) {
images[i].style.backgroundImage = "url('MY_LINK_FROM_FIREBASE')";
}
}
sendResponse({farewell: "Done"});
}
});
console.log("loaded");
在用户单击按钮后调用脚本。
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(msg) {
msg = msg || {};
//chrome.extension.getBackgroundPage().console.log('onResponse', msg.farewell);
});
});