1. iframe与父容器通讯

  1. // 通过postMessage与parent通讯
  2. const params = {
  3. methods: 'setLoginMessage',
  4. params: {
  5. baseInfo,
  6. userInfo: USER
  7. }
  8. }
  9. window.parent.postMessage(JSON.stringify(params), '*')
  1. // 通过监听message事件传入回调函数处理逻辑
  2. const connectMethods = event => {
  3. try {
  4. const { methods = '', params = {} } = JSON.parse(event.data || '{}')
  5. if (methods === 'setLoginMessage') {
  6. const { baseInfo, userInfo } = params
  7. sessionStorage.setItem('baseInfo', JSON.stringify(baseInfo))
  8. sessionStorage.setItem('userInfo', JSON.stringify(userInfo))
  9. this.$emit('success', params)
  10. } else if (methods === 'closeLogin') {
  11. this.$emit('closeLogin', params)
  12. }
  13. } catch (err) {}
  14. }
  15. window.addEventListener('message', connectMethods)