Extensions detect notifications implemented on the website and block notifications when url in the block list is transition destination url
I would like to read the json file (block list) in the extension function by the extension function and compare the url registered in the json file with the transition destination url obtained.
The method can be fetch or xmlhttprequest.
Want to read json files in extensions within extensions
content.js
if(url==="blacklist url"){}
in content.js
I want to get the contents of the json file above this process
content.js
of manifest content_scripts handle asynchronous processing?content.js
blocking.json in relative path but not readIf blocked.json
cannot be obtained in the first place, the console will issue an error.
And "I can't get it"." The url with GET https://demosite/blocked.json404
appears to be getting an error trying to browse to the site's json file instead of the json file in the extension.
I look forward to hearing from you.
Currently, the directory structure is as follows:
extension
├-- js
│ -- --blocked.json
│ -- --content.js
│ --inject.js
└-- manifest.json
manifest
{
"name": "Blocking fishing sites",
"description": "Control method for web push notification by browser extension",
"version": "1.0",
"manifest_version"—2,
"web_accessible_resources":[
"js/content.js",
"js/blocked.json"
],
"content_scripts":[
{
"matches": ["<all_urls>",
"run_at": "document_start",
"js": ["js/inject.js" ]
}
],
"permissions": [
"*://*/*",
"tabs",
"webRequest",
"webRequestBlocking",
"webNavigation"
]
}
blocked.json
{
"keyword": [
"test",
"test_1",
"test_2",
"test_3"
],
"url": [
"https://example.com/",
"https://example_1.com/",
"https://example_2.com/",
"https://example_3.com/"
]
}
inject.js
console.log("--inject script--");
const script = document.createElement("script");
script.src=chrome.runtime.getURL("js/content.js");
( document.head || document.documentElement).insertAdjacentElement("afterbegin", script);
console.log("--load json--");
const blockedPath="js/blocked.json";
consts= document.createElement("script");
s.jsonUrl = chrome.runtime.getURL (blockedPath);
console.log("blockedPath:", s.jsonUrl);
fetch(s.jsonUrl)
.then(response=>response.json())
.then(data=>{
console.log(data);
console.log(data.url[0]);
});
content.js
...omitted...
window.open=function(open){
return function(url, name, features) {
console.log("url:", url);
// Compare the contents of json with url
if(url==="blacklist url"){
console.log("url blocked!");
return null;
} else{
return open.call(window, url, name, features);
}
};
}(window.open);
Relative URLs cannot be used for this purpose because they are relative to the URL of the page you are viewing.
Specify blocked.json
as web_accessible_resources
and .
.
© 2024 OneMinuteCode. All rights reserved.