我可以在全局执行上下文中运行javascript没有eval
Can i run javascript in global execution context without eval
我正在编写php框架,提取Javascript块合并,缩小和异步执行它们。
我想延迟Javascript代码的执行,为此我将Javascript包装在
中MyLib.then(function(){
//orignial code from the templates....
}
可以正常工作,除非包装的代码需要创建全局变量(我不是包装代码的作者,所以我不想修复该代码)相反,我喜欢在全局执行上下文中运行该代码。
例如://excample code not within my controle
var global="Hello World";
将成为:
MyLib.then(function(){
//excample code not within my controle
var global="Hello World";
}
现在的解决方案是将javascript放入字符串中,然后
MyLib.then(function(){
$.globalEval("var global='"Hello World'"";");
}
或在我的库
中调用globalEvalMyLib.then("var global='"Hello World'"";")
,但我想坚持更好的可读性版本,这也更容易调试的框架的用户。
MyLib.then(function(){
var global="Hello World";
}
,并使用callback。call(window)或者类似的东西,可能吗?
你也可以在全局上下文中声明你的变量,然后在作用域内初始化它:
var globalVariable;
MyLib.then(function(){
globalVariable = "a value";
});
如果你的代码已经在一个作用域中运行,你可以这样做:
(function(global){
// my logic
global.myVar = "a value";
})(this);
是的。您可以将它添加到窗口/文档对象中。
例如:window.var = "Hello"
当使用窗口对象时,它可以从任何地方访问。您也可以创建自己的全局对象
相关文章:
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 向下滚动时运行javascript
- 在Android WebView中运行Javascript-onPageFinished循环
- 在父网页的iframe中运行JavaScript
- 有条件地运行javascript函数-Razor,HTML
- 如何通过获取用户输入和使用按钮来运行JavaScript函数
- 使用c#在Web服务器上运行JavaScript方法
- 单击链接时停止运行javascript
- 在浏览器检查表单之前运行javascript onsubmit
- 如何在表单提交事件后运行JavaScript*
- Mediawiki小部件将不会运行javascript
- 有没有一种方法可以在服务器端页面加载之前在加载时运行javascript
- 在GitHub上运行JavaScript Koans
- Chrome扩展:是否有一种方法可以运行JavaScript来获取页面上的内部html,并将其保存到扩展中的变量中
- 在不加载页面的情况下运行javascript
- [AutoIt]如何使用FF.au3在FireFox上的页面中运行javascript
- 仅在屏幕媒体上运行javascript/jquery,而不是打印
- Scala提升了如何运行javascript函数并将返回值存储在变量中
- 安卓系统:通过loadUrl运行javascript时,网络视图中的视频会冻结
- 在页面加载完成之前,使用URL参数运行JavaScript