diff --git a/src/diagrams/flowchart/flowDb.js b/src/diagrams/flowchart/flowDb.js index 275e9c39d..140b820da 100644 --- a/src/diagrams/flowchart/flowDb.js +++ b/src/diagrams/flowchart/flowDb.js @@ -181,14 +181,7 @@ const setLink = function (id, linkStr) { return } if (typeof vertices[id] !== 'undefined') { - funs.push(function (element) { - const elem = d3.select(element).select(`[id="${id}"]`) - if (elem !== null) { - elem.on('click', function () { - window.open(linkStr, 'newTab') - }) - } - }) + vertices[id].link = linkStr } } export const getTooltip = function (id) { diff --git a/src/diagrams/flowchart/flowRenderer.js b/src/diagrams/flowchart/flowRenderer.js index 237526505..28c010218 100644 --- a/src/diagrams/flowchart/flowRenderer.js +++ b/src/diagrams/flowchart/flowRenderer.js @@ -70,6 +70,9 @@ export const addVertices = function (vert, g) { verticeText = verticeText.replace(/fa:fa[\w-]+/g, function (s) { return '' }) + if (vertice.link) { + verticeText = '' + verticeText + '' + } } else { const svgLabel = document.createElementNS('http://www.w3.org/2000/svg', 'text') @@ -85,7 +88,14 @@ export const addVertices = function (vert, g) { } labelTypeStr = 'svg' - verticeText = svgLabel + if (vertice.link) { + const link = document.createElementNS('http://www.w3.org/2000/svg', 'a') + link.setAttributeNS('http://www.w3.org/2000/svg', 'href', vertice.link) + link.setAttributeNS('http://www.w3.org/2000/svg', 'rel', 'noopener') + verticeText = link + } else { + verticeText = svgLabel + } } let radious = 0