从String(纯JS)执行JavaScript代码
Execute JavaScript code from String (pure JS)
我知道,SO上已经有类似的主题,答案通常是"你可以使用eval()
,但不应该这样做"。答案很好,但无论如何eval()
并不能解决我的问题。假设我有一个名为string_code
:的String
变量
var GLOBAL_TEST= 'it works';
alert(GLOBAL_TEST);
现在我需要执行它。注意,它还应该定义GLOBAL_TEST
,这样以后就可以使用了。使用jQuery,我这样做:
$('body').append('<script>'+string_code+'</script>');
现在,如何在纯JS中做到这一点?
非常简单地创建<script>
元素并设置其innerHTML
属性,然后将其附加到主体:
var s;
s = document.createElement('script');
s.innerHTML = 'alert("works");';
//or in your case
//s.innerHTML = string_code;
document.body.appendChild(s);
请注意,这通常被认为是一种糟糕的做法,动态添加脚本通常是用外部脚本按照以下行完成的:
var s;
s = document.createElement('script');
s.src = 'path/to/script.js';
s.onreadystatechange = s.onload = function () {...};
document.getElementsByTagName('head')[0].appendChild(s);
相关文章:
- 无法在通过jQuery的ajax加载的页面中执行javascript
- 在Safari执行javascript之前对其进行修改
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何在从浏览缓存加载页面时执行javascript
- 使用Rhino和ASE执行Javascript的区别
- 如何在加载完整页面后严格执行javascript代码
- 在动态加载的对话框中执行Javascript
- 在Sinatra中执行Javascript
- 通过AJAX加载页面并执行javascript和CSS
- 适用于多种浏览器的Selenium-需要能够执行javascript的webDriver
- 如何在seleniumwebdriver中执行javascript提示并等待接受输入
- 在window.open()生成的窗口中执行JavaScript
- AJAX成功回调-执行javascript时出现问题
- 通过指令在控制器中执行javascript函数
- 从React Native Android原生地执行JavaScript代码
- iframe未执行Javascript方法(PHP)
- 执行JavaScript代码,使用selenium webdriver或WatiN从控制台获取日志
- 通过web驱动程序异步执行Javascript
- 如何在长时间执行JavaScript期间显示微调器
- 点击困难时执行javascript函数