问题标签 [foreignobject]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
svg - Safari MacOS 外来对象在 svg 中未正确缩放
更新
由于 Apple 是 2 万亿美元的公司,让我们尝试通过在此处提交错误报告来让他们解决这个问题:https ://www.apple.com/feedback/safari.html
https://discussions.apple.com/thread/251753724?answerId=253364840022&page=1
在 Chrome 和 Firefox 中没有问题,但这里是 safari 中的问题:
如果我将 fixed style="position: fixed" 添加到外部 div 则它们的位置正确,但 safari 中的尺寸仍然较小。
我尝试将 Body 添加到对象的根目录,但这只是让它们从 Safari 中完全消失。这篇文章也提到了它:
你可以很清楚地看到 safari (new ie) 不尊重缩放
html - 锚标签在 svg foreignObject 内不起作用
锚标签在 svg foreignObject 内不起作用(css 悬停有效,但一旦点击就不会导致任何地方)。我对自定义 Recharts(图库)标签有以下标记
当我点击一个标签时,什么也没有发生。任何帮助将不胜感激。
html - SVG foreignObject 中投影的 Safari 兼容性问题
dropshadow
在 SVG 中的 a内的元素上使用 a时foreignObject
,该元素在 Chrome 和 Safari 上正常工作时,不会在 Safari 上正确显示和缩放。
这是我的 SVG 代码:
和我的 CSS 代码:
移除阴影时,元素被放置在正确的位置和比例。你可以在这个 JSFiddle 上试试:https ://jsfiddle.net/odv3bh9j/
目前,我通过删除阴影找到了以下解决方法:
但我想知道是否有更好的解决方案?
javascript - 单击事件不适用于 svg 中的重叠 foreignObject
我有一个像这样的 svg 元素,
两个foreignObject 中的子元素都有点击事件。foreignObjects 相互重叠。我的问题是当我点击那个div时,最后一个foreignObject的孩子的点击事件工作正常。但是,即使最后一个 foreignObject 的 div 没有与第一个 foreignObject 的 div 重叠,第一个 foreignObject 的孩子也不会触发 click 事件。简而言之,点击事件不会通过顶部的foreignObject。它阻止了那里的点击事件。
javascript - SVG 中的 ForeignObject 不起作用 - React
我正在尝试在 SVG 中显示一个 React 组件。我使用 foreignObject 组件在 SVG 中显示我的 React 对象(ToolbarItem)。但是,什么都没有显示。我做错了什么?谢谢你的帮助
html - 如何使用 html2canvas 呈现包含 SVG foreignObject 的 HTML?
我正在尝试使用 html2canvas 将一大块 html 转换为图像数据,以便我可以轻松地将其添加到 pdf 中。我注意到,当 html2canvas foreignObjectRendering 选项设置为 true 时,作为 SVG foreignObjects 的少数 html 在 pdf 中呈现的效果更接近于它们的实际外观,但其他一切看起来都非常错误。自然地,我希望对 html2canvas 进行两次单独的调用,一次调用未为主要的 html 块设置 foreignObjectRendering 选项,另一次将选项设置为 true 用于少数讨厌的 foreignObjects,这将是一个可行的解决方案。我决定从 DOM 中删除 foreignObjects,完成第一次渲染并将主要块添加到 pdf,然后将 foreignObjects 添加回 DOM,然后将它们传递给 html2canvas。当我尝试在重新添加的 foreignObjects 上调用 html2canvas 时,
无法在克隆的 iframe 中找到元素
以下是相关代码的概要:
有什么方法可以实现我想要做的吗?
javascript - Safari 无法将 SVG 元素替换为:NoModificationAllowedError:无法修改对象
我想替换我所有的 SVG<rect>
元素,foreignObject
这些元素在 FireFox 和基于 Chromium 的浏览器中运行良好,但在 Safari 中失败。
MWE:
HTML/SVG
JavaScript
Safari 失败:NoModificationAllowedError: The object can not be modified.
我知道问题出outerHTML
在 HTML 命名空间上,而 SVG 在 XML 上,但有没有办法在 SVG 中完成这项工作?
感谢您对此问题的任何见解。
html - 在 SVG 元素的 ForeignObject 的 HTML 中呈现自定义外部字体时遇到问题
这是一个复杂的问题。我创建了一个 Chrome 扩展,它将通过 WebSocket 从客户端接收 JSON-RPC 请求,使用 HTML 装饰呈现文本,并使用 PNG 图像响应客户端。我正在使用 Canvas 和 SVG 元素使用包含我正在呈现的 HTML 的 foreignObject 标记来呈现文本。除了当我需要使用外部字体时,这一切都很棒。这里发生了三个级别的间接,所以也许我对浏览器的要求太多了;但我希望不会。
您可能认为直接将文本渲染到 SVG 是一种选择,但这意味着我会失去一些 HTML 提供的丰富功能,例如自动换行。SVG 的自动换行有一些技巧,但我不想走那条路。这可能只是我遇到的许多问题中的第一个。
我需要的是 SVG 标记内的 HTML 来识别我希望它使用的外部字体。这只需要在 Chromium 中工作,因此特定于 Chromium 的解决方案对我来说是一个可行的选择。
svg - 将多个复选框/输入添加到 svg 图像的各种方法的优缺点?
我希望有人能指出将多个复选框添加到 svg 图像的各种方法的优缺点。
我有一个大的、形状奇特的 svg,需要包含 4 个复选框作为输入。看起来有很多方法可以做到这一点,我不确定使用哪一种。
我的要求是它必须是可访问的(即每个复选框都需要 aria-label)并且它必须是可扩展的。我还希望能够指示焦点/悬停。最终图像将成为 html 站点的一部分。
在图像上定位(绝对)html输入
图像映射 如果我想添加链接而不是输入图像,这种方法似乎是最好的。
将图层添加到 svg
将 svg 路径分成多个,以便每个复选框都是其自己的唯一路径
将现有 svg 与一个大路径一起使用,并通过 foreignObject 添加 html 输入