eval未在javascript中运行
eval not running in javascript
我在将educationflag变量设置为1时遇到问题。我正在解决的问题是,如果flag为1,就不调用enableEdit.php文件。
当控件处于if条件时,我想将标志设置为1。现在控件处于if条件下,但没有将变量设置为1。我的代码打印在下面。I
var educationFlag=0;
function editEducation(class){
//I send education in class variable. So class ='education';
var condition=eval(class+'Flag');
if ( condition == 0 ){
$.ajax({
url: "enableEdit.php",
data: "class="+class,
success: function(msg) {
}
})
eval(class+'Flag'=1);
}
}
感谢
在不试图解决潜在问题和停止全球范围的污染的情况下,这应该是可行的。请注意,我已将保留单词类重命名为varPrefix
var educationFlag=0;
function editClass(varPrefix) {
if (window[varPrefix+'Flag'] === 0 ){
$.ajax({
url: "enableEdit.php",
data: "class="+varPrefix,
success: function(msg) {
window[varPrefix+'Flag']=1;
}
})
}
}
我用varPrefix变量发送教育。因此varPrefix="教育";
editClass("education") ...
传递到函数中的class
变量的值是多少?我会做一个有根据的猜测,它会是类似education
的东西?是这样吗?
在这种情况下,第一个eval()
实际上是这样的:
var condition=eval('educationFlag');
第二个是:
eval('educationFlag'=1);
第二个失败,因为=1
部分不在字符串中。这是一个简短的答案,它直接解决了你的问题。
然而,更好的答案是eval()
使用错误。对于这种事情,您永远不应该使用eval()
。由于educationFlag
是一个全局变量,您可以通过作为数组元素的window
对象访问它:这意味着您可以做完全相同的事情,而不必使用有风险的eval()
。
您可以这样引用它:window['educationFlag']
因此,您的eval()
线路可以这样更换:
var condition=window[class+'Flag'];
和
window[class+'Flag']=1;
希望能有所帮助。
我不明白你想在代码中做什么。。。您说要"如果flag为1,则不调用enableEdit.php"。如果是这样的话,你为什么不能这样做:
if(flag == 1) { ... }
去掉你的eval
语句?
相关文章:
- 在终端中运行 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