0

I have this pug page and I need to open the link to a new window. The link is dynamic because it is populated from the backend and when I click the link, I want to open it in a new tab.

How do I do it ?

layout.pug

a(href='/goto/?url='+url)

main.js

app.get('/goto/?url=:url', (req, res) => {
    var new_tab_url = req.params.url;
    window.open(new_tab_url, '_blank').focus();
});

I need to pass the URL from layout.pug to main.js to open a new tab. But I keep getting error

Cannot GET /goto/

Or perhaps , is there other simpler way ? Thank you

Ray
  • 31
  • 5
  • Why do you need to pass the link to your router? Just navigate to it in a new window, like in HTML. Pug just compiles to HTML. – Sean Sep 10 '21 at 19:30
  • My bad, this topic has been closed. The issue has been resolved. Thank you for responding. – Ray Sep 11 '21 at 23:42

2 Answers2

0

To open a link in a new window, just use this:

a(href= url, target='_blank')

There's no reason to pass a variable to a backend router or try to handle the redirection server-side. Just use target="_blank".

Sean
  • 6,873
  • 4
  • 21
  • 46
-1

My bad. This topic is closed since the issue has been resolved.

I am using Express (Node.JS) and this is what I do :

layout.pug

a(href='/goto/?url='+url)

main.js

app.get('/goto', (req, res) => {
    var new_tab_url = req.query.url;
    res.redirect(new_tab_url);
});

At least this works on my issue.

Using : NodeJS Express and Pug

Ray
  • 31
  • 5