chrome插件 如何页面的数据对象?(包含funciton)

现在有个场景,使用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插件能拿到到数据对象就行。

阅读 2k
1 个回答

先转成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)
   }
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题