você pode desativar todos os links em uma página com esta classe de estilo:
a {
pointer-events:none;
}
agora é claro que o truque é desativar os links somente quando você precisar, desta forma:
use uma classe A vazia, como esta:
a {}
então, quando você quiser desativar os links, faça o seguinte:
GetStyleClass('a').pointerEvents = "none"
function GetStyleClass(className)
{
for (var i=0; i< document.styleSheets.length; i++) {
var styleSheet = document.styleSheets[i]
var rules = styleSheet.cssRules || styleSheet.rules
for (var j=0; j<rules.length; j++) {
var rule = rules[j]
if (rule.selectorText === className) {
return(rule.style)
}
}
}
return 0
}
NOTA: Os nomes das regras CSS são transformados em minúsculas em alguns navegadores, e este código diferencia maiúsculas de minúsculas, então é melhor usar nomes de classes em minúsculas para isso
para reativar links:
GetStyleClass('a').pointerEvents = ""
verifique esta página http://caniuse.com/pointer-events para obter informações sobre compatibilidade do navegador
Acho que essa é a melhor maneira de fazer isso, mas infelizmente o IE, como sempre, não vai permitir :) Estou postando de qualquer maneira, porque acho que contém informações que podem ser úteis e porque alguns projetos usam um navegador conhecido , como quando você usa visualizações da web em dispositivos móveis.
se você quiser apenas desativar UM link (só percebo que é a pergunta), eu usaria uma função que define manualmente a url da página atual, ou não, com base nessa condição. (como a solução que você aceitou)
esta pergunta foi muito mais fácil do que eu pensava :)