I have a context menu option and when it is selected I want insert some HTML. I have tried doing this
var div=document.createElement("div"); document.body.appendChild(div); div.innerText='test123';
But it's not working for me.
Note I am trying to avoid using jQuery.
Right-click an element in the inspector, and select "Edit as HTML". You can then add whatever HTML you want inside of it.
Chrome extensions are built with HTML, JavaScript, and CSS scripts and are essentially small websites uploaded to the Chrome store. The only difference between a Chrome extension and a regular website is that extensions contain a manifest file, which gives them a specific function to execute.
Page Edit is an extension that let you make changes to any HTML webpage. To work with this add-on, simply open the toolbar popup UI and then click on the big toggle button at the left side.
Here you can research how to create an extension and download the sample manifest.json.
Content Scripts can be used to run js/css matching certain urls.
manifest.json
{ "name": "Append Test Text", "description": "Add test123 to body", "version": "1.0", "permissions": [ "activeTab" ], "content_scripts": [ { "matches": ["http://*/*"], "js": ["content-script.js"] } ], "browser_action": { "default_title": "Append Test Text" }, "manifest_version": 2 }
content-script.js
var div=document.createElement("div"); document.body.appendChild(div); div.innerText="test123";
The above will execute the content-script.js
for all urls matching http://*/*
where *
is a wildcard. so basically all http
pages.
Content scripts have many properties which can be found in the link above.
Programmatic injection can be used when js/css shouldn't be injected into every page that matches the pattern.
Below shows how to execute the js onclick
of the extension icon:-
manifest.json
{ "name": "Append Test Text", "description": "Add test123 to body", "version": "1.0", "permissions": [ "activeTab" ], "background": { "scripts": ["background.js"], "persistent": false }, "browser_action": { "default_title": "Append Test Text" }, "manifest_version": 1 }
background.js
chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript({ code: 'var div=document.createElement("div"); document.body.appendChild(div); div.innerText="test123";' }); });
This uses the executeScript method, which also has an option to call a separate file like so:-
background.js
chrome.browserAction.onClicked.addListener(function(tab) { chrome.tabs.executeScript({ file: "insert.js" }); });
insert.js
var div=document.createElement("div"); document.body.appendChild(div); div.innerText="test123";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With