<div class="quote_title"> 写道</div>
<div class="quote_div">var Jason="{name:'jason.zhao'}";<br><br>
eval("var oName="+Jason);<br><br>
alert(oName.name);//输出"jason.zhao"</div>
<p>1.使用eval()可以将jason格式字符串转化为js 对象,</p>
<p>---------------------------------------------------------------------------------------------------------------------------------</p>
<div class="quote_title"> 写道</div>
<div class="quote_div">var iNum=eval("5+2");<br>
alert(iNum);//输出“7”</div>
<p>2.使用eval()可以计算某个字符串</p>
<p>--------------------------------------------------------------------------------------------------------------------------------</p>
<p>转:</p>
<p>今天又碰到一件郁闷的事,让一个小小的eval给绊倒了.究竟是怎么回事呢?请听我详解.</p>
<p>今天做项目,有一个网页在ie下正常工作,但在火狐下,他居然不运行.我仔细检查了一下网页上的javascript,也没发现什么不兼容的地方.不
得已,我祭出了法宝级的工具--fireBug.在FireBug中,我设置了断点,按F10单步调试,单只见走到一半,网页闪了一下,便结束了.郁闷.
仔细观察了一下代码,发现在此地方,fireBug停下: var
Size_List=eval("Form1.Size_List_"+suit_array_s[0].trim())......
我想难不成firefox不支持根据name取值,于是我做了一个实验,实验html内容如下:</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert(form1.txt1.value);
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p>但是测试发现,在ie和firefox中都很正常,郁闷啊.究竟哪里出错?难道是eval,
我又改之为 alert(eval("form1.txt1.value")),
仍然正常...................无限郁闷中.........</p>
<p>最后我使出我最...厉害的杀手锏,在脚本中添加如下代码:</p>
<p>window.onerror=reportError;<br>
function reportError(msg,url,line) {<br>
var str = "You have found an error as below: \n\n";<br>
str += "Err: " + msg + " on line: " + line;<br>
alert(str);<br>
return true;<br>
}</p>
<pre name="code" class="html">window.onerror=reportError;
function reportError(msg,url,line) {
var str = "You have found an error as below: \n\n";
str += "Err: " + msg + " on line: " + line;
alert(str);
return true;
}</pre>
<p>错误终于显出原形:<img src="http://images.cnblogs.com/cnblogs_com/yuanshangcao/ERROR.JPG" border="0" alt="" width="350" height="129">
</p>
<p>Form1未定义?不可能.网页中有一个form,name和id都是Form1.怎能没定义?!将测试html改为</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert("form1.txt"+1+".value");
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p>之后,再在ff中试一下,出错.终于发现错误的原因,firefox下,如果写成""+变量,再用eval后,ff无法正确执行,在ie中正常,郁闷,有没有解决方法呢?有!</p>
<p>改之为</p>
<pre name="code" class="html"><head>
<script type="text/javascript">
function test()
{
alert("document.form1.txt"+1+".value");
}
</script>
</head>
<form name=form1 action="" onSubmit="test();" method=post>
<input type="text" name="txt1">
<input type="submit" value=提交>
</form></pre>
<p> 在form1前面,加一个"document.",再测试,正常,问题解决..............郁闷,为什么"form1.XX"可以,为什
么"form1."+变量不行,而"document.form1."+变量又可以..........真让人糊涂啊,这javascript,这
firefox...........</p>
<p> </p>
--------------------
呵呵,看看这篇文章,你就明白了。
(1)对于IE浏览器,默认已经提供了这样的函数:execScript,用于在全局空间执行代码,只是知道的人还不多。
(2)对于Firefox浏览器,直接调用eval函数,则在调用者的空间执行;如果调用 window.eval则在全局空间执行。
这个知道的人估计就更少了。毕竟alert(eval==window.eval)返回true!
分享到:
相关推荐
这些库通常支持简单的数学运算、逻辑判断以及对Java对象的操作,可以用来实现类似JavaScript`eval()`的功能,但可能无法处理复杂的语句或函数。 5. **安全与性能考虑**: 使用上述技术进行动态编程时,必须注意...
例如,在业务逻辑中,你可以动态地根据用户的需求构建SQL查询语句,或者在游戏环境中,根据玩家的行为实时计算得分。这种动态执行表达式的能力,使得代码更加灵活,减少了硬编码,提升了代码的可维护性。 总结起来...
在VBScript中,`Eval`函数和`Execute`、`ExecuteGlobal`语句是三个重要的动态执行代码的工具,它们各自有不同的用途和特性。 `Eval`函数的主要功能是计算一个字符串表达式,并返回表达式的值。它适用于需要动态计算...
这个功能在处理动态生成的代码或者解析JSON时非常有用。然而,由于安全和性能问题,`eval()`通常被避免在生产环境中使用。在Java中,没有直接对应的内置函数可以实现这样的功能,但我们可以构建一个类似的机制来模拟...
DataBinder.Eval 是ASP.NET中用于数据绑定的一个非常重要的方法,它允许我们在ASP.NET Web表单中动态地从数据源获取并显示数据。这个方法主要用在控件的数据绑定表达式中,比如在Repeater、GridView、ListView等控件...
公式操作、表达式动态语句,可以考虑使用 Eval Expression。 本文件给你无限使用的特权,基于netstand2.1制作,可以方便的用于netcore 3.1和net5中 需要下列包 ...
在编程领域,Eval函数、Execute语句和ExecuteGlobal语句是用于在程序运行时动态执行代码的技术。这三种技术各有特点和使用场景,但同时也带来潜在的风险。本文将详细介绍这三种技术的使用方法、特点和注意事项。 ...
在本讨论中,我们将深入探讨如何自定义`eval()`函数以提高代码的安全性和效率,同时也会涉及到JavaScript的动态执行特性以及其在实际开发中的应用。 首先,`eval()`的默认行为是将其接收到的字符串当作JavaScript...
下面是 ASP.NET 中的一些常用语句,涵盖了弹出对话框、绑定下拉列表框、时间去秒显示、标题带链接、修改转向、弹出确定按钮、输出数据格式化、提取动态网页内容等多个方面。 1. 弹出对话框 Response.Write(...
在GNU Make中,`eval`函数是一个非常强大的特性,它允许你在运行时动态地解析和执行Makefile中的规则和变量定义。这个功能对于编写复杂的、自包含或者自生成的Makefile来说尤其有用。下面我们将详细探讨`eval`函数的...
3. 代码预处理:在执行之前,`safe-eval`会对代码进行预处理,移除或替换可能产生安全风险的语句和表达式,如`new Function`、`document.write`等。 4. 限制API访问:`safe-eval`可以通过配置来限制可以访问的...
在这个例子中,`eval()`接收一个字符串`code`,然后将其中的JavaScript语句执行,就像它们是直接写在源代码中一样。这使得`eval()`成为实现动态编程和代码注入的一种手段。 然而,`eval()`也存在显著的安全隐患。当...
注意,这里在JSON字符串前添加了`( )`,这是因为`eval`在没有括号包裹的情况下,会尝试把其参数当作语句执行,而不仅仅是表达式。加了括号后,JSON字符串会被当作一个完整的JavaScript对象字面量来解析。 尽管`eval...
如果字符串中的最后一条语句是一个表达式,则`eval`将返回该表达式的值;如果是语句,则返回`undefined`。 ##### `eval`函数的基本用法 ```javascript var bar = 'bar'; var foobar = eval('"foo" + bar'); alert...
- **解释**:这个例子展示了另一种使用 `die` 的方式,即如果 `chdir` 调用失败,则执行 `or` 后面的 `die` 语句,输出 “Stopped”。 #### 三、Warn函数 ##### 3.1 功能概述 `warn` 函数类似于 `die`,但不会使...
此外,由于其语义要求严谨,Swift-Eval还会对表达式和语句进行深度验证,防止潜在的逻辑错误。 Swift-Eval对于计算机语言教学的价值主要体现在以下几个方面: 1. 实践学习:学生可以通过编写和运行自己的解释器来...
本文将详细介绍如何在ASP中利用`Eval()`函数将字符串当作语句来执行,以及这一功能的应用场景与注意事项。 #### 一、Eval()函数概述 在ASP中,`Eval()`函数是一个非常强大的工具,它能够解析并执行一个字符串中的...
标题 "global-load-from-eval-in-with.rar_inside" 暗示了这个压缩包涉及的是一个JavaScript编程中的特定问题,特别是关于“eval”函数在“with”语句内部的行为。描述 "Tests global loads from eval inside of a ...