javascript - d3js - 使用 javascript 操作创建服务器端 SVG

标签 javascript node.js d3.js

我正在尝试启用 JavaScript 代码,以便在绑定(bind)到使用 d3@3 在 NodeJS 中创建的 SVG 元素的操作上调用。 不幸的是,on('click') 没有渲染。

router.get('/test', function(req, res) {
    const dom = new JSDOM();
    var svg = d3.select(dom.window.document.body)
        .append("svg")
        .attr("xmlns", "http://www.w3.org/2000/svg")

    svg.insert('rect') 
        .attr("width", 200)
        .attr("height", 200)
        .on('click', function() { console.log('click')});

    svgStr = dom.window.document.body.innerHTML;
    res.set('Content-Type', 'image/svg+xml');
    res.send(svgStr);
})

输出:

<svg xmlns="http://www.w3.org/2000/svg"><rect width="200" height="200"> 
</rect></svg>

on('点击')在哪里??

最佳答案

设置

`
//...
.attr("height", 200)
.attr("onclick" , "console.log('click')")`

为您点击

请记住,不允许从图像到页面执行任何操作

关于javascript - d3js - 使用 javascript 操作创建服务器端 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53146126/

相关文章:

javascript - 将 SVG 嵌入 ReactJS

node.js - 如何在node.js/socket.io中使用removeListener来防止多次触发函数

javascript - 是否可以将文本附加到 SVG 中的文本元素?

javascript - 在转换过程中隐藏背面的最佳方法是什么?

javascript - 使用 topojson 和 D3 映射数据

node.js - Socket.io app ...我应该使用emit还是使用常规http请求并用express处理它?

javascript - polymer 和D3 : How to send JSON from element attribute to template

javascript - D3没有在jade中渲染简单的条形图

javascript - 聚光灯视频播放器 ||如何用它播放 HTML5 视频

node.js - 安装 Node.js windows 10 64 位时出错