Yes. Via how to change the response header in Chrome :
chrome.webRequest.onHeadersReceived.addListener(function(details){
for(var i = 0; i < details.responseHeaders.length; ++i)
if(details.responseHeaders[i].name.toLowerCase() == 'content-type')
details.responseHeaders[i].value = 'text/html; charset=shift-jis';
return {responseHeaders:details.responseHeaders};
}, {urls: ['https://www.google.com/*']}, ['blocking', 'responseHeaders']);
pageload, chrome.webRequest.onCompleted.addListener, <head>. chrome.tabs.executeScript(), .
chrome.webRequest.onCompleted.addListener(function(details){
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.executeScript(null, {allFrames:true,code:"document.getElementsByTagName('meta')[0].setAttribute('content', 'text/html; charset=UTF-8');"});
});
}, {urls: ['http://google.com/']});
background.js, manifest.json:
{
"manifest_version": 2,
// name,description,version...
"background": {
"scripts": ["background.js"],
"persistent": true,
//"matches": ["https://google.com/"]
},
"permissions": [
"tabs",
"webRequest",
"webRequestBlocking"
]
}
, . document.charset , , .