ConTeXt hyperlinks

You can add borders to references with the references.border directive, the default color for the frame is black but you can change it to another color.

\setupinteraction
  [state=start,
   color=,
   contrastcolor=,
   style=]

%\enabledirectives[references.border]
\enabledirectives[references.border=green]

\starttext
Here is a \goto{link}[url(http://tex.stackexchange.com)] to my favourite web site.
\stoptext

To remove the style of the link you have change the style and color values with the \setupinteraction command.

Framed hyperlink with ConTeXt


Metafox's solution explains how to add borders around links. I'll explain why your old macros stopped working.

There has been a change in the luatex backend. Lot of the \pdf... series of commands introduced by pdfTeX are now available as \pdfextension. To be backward compatible, macro packages are supposed to define:

\protected\def\pdfstartlink             {\pdfextension startlink }
\protected\def\pdfendlink               {\pdfextension endlink\relax}

ConTeXt does so in syst-ini.mkiv. However, then redefines these to \relax in back-ini.mkiv. The explanation is:

%D Because we do a lot in \LUA\ and don't want interferences, we nil most of the
%D \PDFTEX\ primitives. Of course one can always use the \type {\pdfvariable},
%D \type {\pdfextension} and \type {\pdffeedback} primitives but it will probably
%D have bad side effects.

%D These are no-ops and don't even intercept what comes next. Maybe some day
%D I'll write a parser that maps onto \CONTEXT.

That is the reason that your macro is not working. So, you will either have to add

\unexpanded\def\pdfstartlink             {\pdfextension startlink }
\unexpanded\def\pdfendlink               {\pdfextension endlink\relax}

or use \pdfextension startlink attr {....} ... \pdfextension endink\relax in your definition.