Solução encontrada graças aos apontamentos de @Ignacio Vazquez-Abrams.
O problema estava no caminho xdg-open
passa um argumento para o aplicativo padrão.
Se o aplicativo padrão estiver registrado no área de trabalho do kde , de modo a esperar uma url (% u)
/home/bu5hman/Installs/seamonkey/seamonkey %u
então todo o argumento passado para xdg-open
é usado como url e o navegador navega para a tag.
se o% u for omitido, o argumento transmitido para xdg-open
será testado para ver se é um arquivo e depois removido das informações do # na URL (do script xdg-open
)
# If argument is a file URL, convert it to a (percent-decoded) path.
# If not, leave it as it is.
file_url_to_path()
{
local file="$1"
if echo "$file" | grep -q '^file:///'; then
file=${file#file://}
file=${file%%#*} #<----------
file=$(echo "$file" | sed -r 's/\?.*$//')
local printf=printf
if [ -x /usr/bin/printf ]; then
printf=/usr/bin/printf
fi
file=$($printf "$(echo "$file" | sed -e 's@%\([a-f0-9A-F]\{2\}\)@\x@g')")
fi
echo "$file"
}
e a página é aberta apenas no topo.
No meu caso, o firefox foi registrado com% u e seamonkey sem, e é por isso que eu tive um comportamento diferente nos dois navegadores.