For developing a Chrome extension, I am injecting JS code from content_scripts into the site. content_scripts.js code looks like:
const mainDiv = document.createElement('div'); 
mainDiv.innerHTML = 
    `<div id="innerDiv">Lorem ipsum</div>
    <script>
        alert("First");
        function doSome(){
            alert("Hi");
        }
    </script>`;
    
document.body.insertAdjacentElement('beforeend', mainDiv);
setTimeout(() => {  
    alert("Test"); 
    doSome();    
}, 5000);
In the website HTML tag and JavaScript were injected.
doSome() function and alert("First") not executing. But this alert("Test") is executing.
The browser console gives an error message content_scripts.js:1 Uncaught ReferenceError: doSome is not defined.
I've also tried it in a different way. content_scripts.js code looks like:
const mainDiv = document.createElement('div'); 
mainDiv.innerHTML = 
    `<div id="innerDiv">Lorem ipsum</div>`;
    
document.body.insertAdjacentElement('beforeend', mainDiv);
document.getElementById('innerDiv').innerHTML = 
    `<script>
        alert("Second");
        function doAnother(){
            alert("Hello");
        }
    </script>`;
setTimeout(() => {
    alert("Best");       
    doAnother();    
}, 5000);
In the website HTML tag and JavaScript were injected.
doAnother() function and alert("Second") not executing. But this alert("Best") is executing.
The browser console gives an error message content_scripts.js:1 Uncaught ReferenceError: doAnother is not defined.
It was flagged as a duplicate. I also tried eval() but no luck.
What can I do to execute alert("First") or alert("Second") or doSome() or doAnother()?




