How to append a line of JavaScript (rather than an exteral .js file)?
I want to append a script tag which executes one line of JavaScript to the head of a 开发者_开发百科document, rather than appending a script tag which is empty and uses the src attribute.
Here's what I've got so far:
<script type="text/javascript">
var scriptContents = 'alert("hi")';
var theScript = document.createElement('script');
theScript.type = 'text/javascript';
theScript.appendChild(scriptContents);
document.getElementsByTagName('head')[0].appendChild(theScript);
</script>
It's the appendChild(scriptContents) part that I'm having trouble with. How do I change this to get the alert to appear in the browser?
You need to append it as a text node. Try this:
theScript.appendChild(document.createTextNode(scriptContents));
You can't do
theScript.appendChild(scriptContents);
as appendChild()
only appends nodes, it can't append text. You need to make a text node with:
var scriptContents=document.createTextNode('alert("hi");')
However, as Jake mentioned above, you probably just want to do:
eval('alert("hi")');
精彩评论