Reloading look or dashboard using postMessage doesn't trigger message to parent window

(Young Zhao) #1

I have an embedded looker iframe which contains a look. I need to update the UI in the parent window after a look is reloaded (update filters and then re-run). But it looks like posting messages to the looker iframe doesn’t trigger and message back to the parent window. Is this the correct behavior? Is there a workaround for this issue?

Here a pseudo code

  // first register the listener
  window.addEventListener('message', (e) => {
    // I see the look iframe messages when the iframe is first loaded
    // *** NOTHING is triggered after I update and reload the look

  function reload(iframe) {
    // update filters
    let updateJSON = JSON.stringify({
      type: 'look:filters:update',
      filters: { .... },
    iframe.contentWindow.postMessage(updateJSON, '...')

    // reload look
    let runJSON = JSON.stringify({ type: 'look:run' })
    iframe.contentWindow.postMessage(runJSON, '...')
    // iframe is updated successfully, but parent window doesn't get any "message"

  // lookerIframe is the looker iframe

(Elliot Park) #2

Hey @Young_Zhao,

To clarify, are you using code identical to the default window.addEventListener function like the one in our docs below:

Or are we using custom logic when checking the event source and event origin?

(Young Zhao) #3

Hi @Ellio,

Yes I am using code identical to the looker documentation. The issue is look:filters:update and look:run doesn’t trigger any message to the parent window.

I actually found a workaround for this by using iframe url to update the filter values

(Elliot Park) #4

I see. In this case, because we might need to get into the specifics of your javascript event scripting, I’d recommend sending an email to to get an email conversation started. This would allow us to better examine the in’s and out’s of your setup!

(Young Zhao) #5

@Ellio Thanks! I will contact support.