如何判断一个字符串是否是eval以后是对象?

nil2000 2008-05-22 02:02:16
需求有点奇怪啊!!!有n个js会被load
function loadJs() {
var html_doc = document.getElementsByTagName('head')[0];
var js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', 'xxxxxxxxxxxxxxfilename');
html_doc.appendChild(js);
}
但是这n个文件中,由于是动态的,有些文件在特定情况下可能不存在!
其实这每个文件都是json格式的!加载这些文件后,即获得一些对象!
所以在用这些对象的时候我需要判断这些对象是否存在!



即怎么能让下面这个成功啊?

<script>
// var test = "test";
//将一个字符串变成对象!
var xview = eval("test");
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("无test对象");
</script>


如果这样写就没有问题

<script>
var test = "test";
if(xview)
alert(eval("test"));
else
alert("无test对象");
</script>
...全文
334 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
muxrwc 2008-05-22
  • 打赏
  • 举报
回复
www.json.org/json.js
这里有..
- -
这文件怎么改成这样了.
  • 打赏
  • 举报
回复
呵呵!!
nil2000 2008-05-22
  • 打赏
  • 举报
回复
汗!!!!忘记了可以cach一下
感谢555
strife013 2008-05-22
  • 打赏
  • 举报
回复
function s()
{
try
{
if(eval("Select21"))
{
document.writeln("yes");
}
else
{
document.writeln("no");
}
}
catch(ex)
{
document.writeln("erro"+ex);
}
}

不是object就会报错
Go 旅城通票 2008-05-22
  • 打赏
  • 举报
回复
try
{
eval("要判断的字符串")
}
catch(e)
{
alert("不是对象")
}
nil2000 2008-05-22
  • 打赏
  • 举报
回复
希望能表达这个意思啊!
<script>
//将某个字符串变成对象!
var xview = eval("test");
//这个对象是否存在
if(xview)
alert("存在");
else
alert("不存在");
</script>

这样不行啊!
<script>
// var test = "test";
//将一个字符串变成对象!

var xview = eval('"test"'); //这样
alert(xview);
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("无test对象");
</script>
nil2000 2008-05-22
  • 打赏
  • 举报
回复
可能我没有表达清楚!我要动态的load,N个js文件!这些js文件都是json格式的,每个文件都有跟文件名一样的对象存在!我无法预知那些js文件会被load到!
所以我load全部js文件的后!我需要判断一个对象数组,看看那些对象时可用的!

<script>

//将字符串变成对象!
var xview = eval("test");
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("不存在");


这样不行啊!
<script>
// var test = "test";
//将一个字符串变成对象!

var xview = eval('"test"'); //这样
alert(xview);
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("无test对象");
</script>



s_liangchao1s 2008-05-22
  • 打赏
  • 举报
回复

<script>
// var test = "test";
//将一个字符串变成对象!

var xview = eval('"test"'); //这样
alert(xview);
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("无test对象");
</script>

nil2000 2008-05-22
  • 打赏
  • 举报
回复
<script>
// var test = "test";
//将一个字符串变成对象!
var xview = eval("test");
//判断是否存在改对象!
if(xview)
alert(xview);
else
alert("无test对象");
</script>
你可以把这个例子跑一下~~~~~~~~~~~~~~~~~~~确实不行啊!如果该对象不存在的话
什么反应都没有
s_liangchao1s 2008-05-22
  • 打赏
  • 举报
回复
eval(字符串对象实例)就返回test了
nil2000 2008-05-22
  • 打赏
  • 举报
回复
json.js里不是有个isJSON的判断方法么?
这个只是判断是不是json格式的?

我只是想知道我引入的js文件是否存在!也就是是否引入成功了!
通过判断这个js文件里面的变量是否存在来判断是否引用该js文件是否加载完毕!
nil2000 2008-05-22
  • 打赏
  • 举报
回复
<script>
var test = "test";
if(xview)
alert(eval("test"));
else
alert("无test对象");
</script>
如果这样写会打印出test
  • 打赏
  • 举报
回复
eval("test")你输出这个是什么?OBJECT?
muxrwc 2008-05-22
  • 打赏
  • 举报
回复
json.js里不是有个isJSON的判断方法么?
s_liangchao1s 2008-05-22
  • 打赏
  • 举报
回复
没太看明白你代码
eval()得参数只接受(唯一一个)字符串值,如果参数是其他类型的数据--包括字符串对象实例,
那么eval只能原封不动返回该值,而不会有其他效果。

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧