Skip to content

Resize Stops Working after Browser Back #247

@yucho

Description

@yucho

First off, I wanna say thanks for this awesome module! I'm thoroughly happy with it. Now, the issue I'm experiencing might be specific to my project because I'm using react-router and turbolinks. After navigating through pages via browser back/forward, resizing no longer works.

I did some debugging and found out the cause. Sometimes, the browser creates a new document.body, but hiddenTextarea keeps pointing at old body (and hence causing memory leak. Not sure where this behavior is from, BFCache might be the culprit here).

The quick fix I found is to change the following statement in calculateNodeHeight.js

  // Before change
  if (hiddenTextarea.parentNode === null) {
    document.body.appendChild(hiddenTextarea);
  }
  // After change
  if (!document.body.contains(hiddenTextarea)) { /.../ }

This way, you can always check for the latest body to see whether or not hiddenTextarea exists in the current body instance. There might be a better way, but this is a one-liner fix.

If you'd like, I can quickly make the change, add some tests, and submit a PR. Let me know what you think :)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions