7

Is it possible to create something that similar to:

var jsfile = "code....";
(a=(b=document).createElement('script')).src=jsfile;
b.body.appendChild(a);

where 'jsfile' is like an external js file but in our case will be a variable?

All of my tests failed and I succeeded to get the input of 'jsfile' but if there were function inside of obj (remember I want it to preform like an external js file) they didn't executed.

Example for a test:

var jsfile = "code....";
(a=(b=document).createElement('script')).text=(jsfile);
b.body.appendChild(a);
2
  • 1
    Can you please clarify what you're asking. I really can't tell. I see no problem in your code. Commented Oct 9, 2012 at 17:31
  • Have you looked at this question? stackoverflow.com/questions/610995/… Commented Oct 9, 2012 at 17:31

2 Answers 2

10

Try setting a type on the script element, like so (taken from Can't append <script> element):

var script   = document.createElement("script");
script.type  = "text/javascript";
script.src   = "path/to/your/javascript.js";    // use this for linked script
script.text  = "alert('voila!');"               // use this for inline script
document.body.appendChild(script);
Sign up to request clarification or add additional context in comments.

Comments

6

Yes you can, actually, the src attribute is used only for a javascript file path, if you want to render the code you can use the innerText property:

var code = 'alert("working!")';
var script = document.createElement('script');
script.innerText = code;

document.body.appendChild(script);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.