- 主题:eval什么意思?
如下代码,在火狐上能正确显示和运行,但是在ie8上则显示有错误,出错提示19行和29行有错误,请问错在哪里?该怎么改?eval那句代码是是什么意思?
<html>
<head>
<script>
var ws = new WebSocket('ws://192.168.1.103:8000/soc');
ws.onmessage = function(event) {
var table = document.getElementById('message');
var data = eval('(' + event.data + ')');
({
'sys': function() {
var cell = table.insertRow().insertCell();
cell.colSpan = 2;
cell.innerHTML = data['message'];
},
'user': function() {
var row = table.insertRow();
row.insertCell().innerHTML = data['message'];
row.insertCell().innerHTML = data['id'];
},
}[data['type']])(); //19行
};
function send() {
ws.send(document.getElementById('chat').value);
document.getElementById('chat').value = '';
}
</script>
</head>
<body>
<input id='chat'>
<from><button onclick='send()'>Send</button></from> //29行
<table id='message' border='1'></table>
</body>
</html>
--
FROM 58.242.155.*
eval('var a = 123');
类似var a = 123;
注意下scope
【 在 HeapHeap (堆内存) 的大作中提到: 】
: 如下代码,在火狐上能正确显示和运行,但是在ie8上则显示有错误,出错提示19行和29行有错误,请问错在哪里?该怎么改?eval那句代码是是什么意思?
: <html>
: <head>
: ...................
--
FROM 61.49.121.16
现在生产一般不直接用eval,数据处理用第三方json.js
【 在 HeapHeap 的大作中提到: 】
: 如下代码,在火狐上能正确显示和运行,但是在ie8上则显示有错误,出错提示19行和29行有错误,请问错在哪里?该怎么改?eval那句代码是是什么意思?
: <html>
: <head>
: ...................
--
FROM 123.112.228.*
标准函数定义随便搜一下不就有了?
不是eval的毛病 应该是加载的js代码在ie8里不支持
【 在 HeapHeap 的大作中提到: 】
: 如下代码,在火狐上能正确显示和运行,但是在ie8上则显示有错误,出错提示19行和29行有错误,请问错在哪里?该怎么改?eval那句代码是是什么意思?
: <html>
: <head>
: ...................
--
FROM 110.23.10.*
他eval里边写的也不对啊
【 在 facilitator (黄书中自有颜如玉 脸书中自有黄金屋) 的大作中提到: 】
: 标准函数定义随便搜一下不就有了?
: 不是eval的毛病 应该是加载的js代码在ie8里不支持
--
FROM 106.39.222.40
没有问题啊 eval内部要生成一个object的话 就是要加括号的
关键在于是他那个event.data内容是啥
ie8可能不支持很多js最近这些年的新特性 比如(... args)参数 ()=>{}函数之类的 eval的时候就报错了吧
【 在 shaolin 的大作中提到: 】
: 他eval里边写的也不对啊
:
--
FROM 110.23.10.*
eval('{"a":123}');
试试这个。。
【 在 facilitator (黄书中自有颜如玉 脸书中自有黄金屋) 的大作中提到: 】
: 没有问题啊 eval内部要生成一个object的话 就是要加括号的
: 关键在于是他那个event.data内容是啥
: ie8可能不支持很多js最近这些年的新特性 比如(... args)参数 ()=>{}函数之类的 eval的时候就报错了吧
: ...................
--
FROM 106.39.222.40
你应该是搞错了
https://jsfiddle.net/39rdLnyn/
不加括号出来的不是object
【 在 shaolin 的大作中提到: 】
: eval('{"a":123}');
: 试试这个。。
:
--
FROM 110.23.10.*
我印象中是连function都要加()才能输出对象
【 在 shaolin 的大作中提到: 】
: eval('{"a":123}');
: 试试这个。。
:
--
FROM 110.23.10.*