现在有个场景,使用chrome插件处理页面的数据。
数据无法使用JSON序列化。
数据对象类似:
var a = {
b: '123456',
c: 123456,
d: [1, 2, 3, 4, 5, 6],
e: function(f, g) {
return { h: f + g }
}
}
已测试过window.postMessage
, new CustomEvent()
这些方式,
都有个问题,就是无法处理funciton
。
请问什么方法可以解决,只要chrome插件能拿到到数据对象就行。
先转成JSON,没太明白楼主的场景。
var a = {
b: '123456',
c: 123456,
d: [1, 2, 3, 4, 5, 6],
e: function(f, g) {
return { h: f + g }
}
}
function objJson_deep (o) {
var a_copy = {}
Object.keys(o).forEach(k => {
if (Object.prototype.toString.call(o[k]) == '[object Object]') {
a_copy[k] = objJson_deep(o[k]);
}
if (typeof a[k] == 'function') {
a_copy[k] = o[k].toLocaleString()
} else {
a_copy[k] = o[k]
}
})
return JSON.stringify(a_copy)
}