Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

[BUG]: Broken styling in plot rendered in an iframe

Aberta
#7,688 2 comentários 0 reações 1 responsável Ver no GitHub

Mantenedores costumam responder em até 1 dia

@nathell já está trabalhando nisso.

Desde 21/1/2026.

Avaliação

Esta issue ainda não foi avaliada.

Descrição

bug
Description

A plot rendered within an iframe (same-domain, i.e. with access to the iframe’s dom) has broken styling when Plotly is loaded and runs from within the root document’s context.

This happens because Plotly attempts to add styles to the parent document, even when the plot div belongs to a child document: addRelatedStyleRule gets the HTMLStyleElement from document, rather than from graphDiv.ownerDocument.

Screenshots/Video

Broken rendering within iframe – note the misaligned title and mispositioned, always-visible modebar:
Image

As compared to correct rendering:
Image

Steps to reproduce
  • Create and open a file with this content:
<html>
  <body>
    <iframe id="content" style="width: 800px; height: 600px;"></iframe> <!-- Remove for just the reference rendering -->
    <script src="https://cdn.plot.ly/plotly-3.3.1.min.js"></script>
    <script>
      const doc = document.getElementById('content').contentDocument; // Replace with just `const doc = document;` to see the reference rendering
      doc.write('<div id="plot" style="width: 600px; height: 400px;"></div>');
      const plot = doc.getElementById('plot');
      Plotly.newPlot(plot, [{x: [1, 2, 3, 4, 5], y: [1, 2, 4, 8, 16]}], {title: {text: "Some plot"}});
    </script>
  </body>
</html>
  • Note wrong styling as per screenshot
  • Follow comments to compare with the correct rendering
Notes

My use case is to render Plotly graphs correctly in a Storybook-like component library (Portfolio, for ClojureScript). Portfolio renders components within iframes, which triggers the issue. I have a workaround that clones the element and associated styles from <style id="plotly.js-style-global"> to the iframe's document after the plot is rendered – this works, but is clunky.

Linguagem predominante
JavaScript
Estrelas
18.4k
Forks
2k
Merge médio
1d 21h
PRs com merge (30d)
18

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de plotly/plotly.js

Todas as issues de plotly/plotly.js

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.