javascript - Knockout 的 HTML 绑定(bind) + SVG

标签 javascript firefox knockout.js svg

我使用 Knockout 通过将字符串传递到使用 html: 绑定(bind)进行数据绑定(bind)的 SVG 来渲染动态 SVG。在 Chrome 中,这非常有效。在 Firefox 中,它将正确设置 DOM(即我可以看到子 svg 元素存在于 firebug 中),但图形本身不会显示。

我做了一个 fiddle :https://jsfiddle.net/4eTJL/1/但有趣的是,Firefox 的行为在两个浏览器中都显示在 fiddle 中。

最佳答案

<svg>标签没有innerHTML属性(property),这就是为什么ko html绑定(bind)不起作用,但您可以通过将所有 svg 内容放入 logo 来避免此问题变量,然后将其绑定(bind)到标准 html 标记。

https://jsfiddle.net/4eTJL/2/

<div data-bind="html: logo"></div>

var vm = {
    logo: '<svg viewBox="0 0 50 50" class="center-block" xmlns="http://www.w3.org/2000/svg" width="80" height="80" data-bind="xml: logo"><rect ry="8" rx="8" id="svg_2" height="50" width="50" y="0" x="0" stroke-width="5" fill="#bfbfbf"></rect><text font-family="Graduate" textLength="40" lengthAdjust="spacingAndGlyphs" text-anchor="middle" x="25" y="37" font-size="33" fill="crimson" stroke="black" stroke-width="1.25">NO</text></svg>'
};

ko.applyBindings(vm);

关于javascript - Knockout 的 HTML 绑定(bind) + SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24835580/

相关文章:

html - 按钮背景颜色未显示在边缘,但适用于 Firefox 和 Chrome

javascript - codebehind webmethod 没有使用 jquery ajax 和 knockout 来调用我尝试了很多东西但失败了

javascript - 从函数返回值到变量

javascript - 如何选择整个页面,但不选择里面的输入字段?

javascript - Intersection Observer API 触发回调,即使元素不在 View 中

css - CSS 旋转后 Firefox 中的抗锯齿文本

javascript - afterRender 用于 html 绑定(bind)

javascript - 如何使用带有复选框的 knockoutjs protected observable?

javascript - Windows 8 Javascript 应用程序上的 MPEG-DASH

javascript - jQuery - 每当用户更改任何表单输入时调用一个函数?