2012-02-09 12 views
6

Ho un elenco di URL che i nostri utenti hanno inserito per i siti Web di vari client ... Sto caricando questo elenco dal server in una griglia per gli utenti per vedere ... Ho fatto clic sugli URL cliccandoli con un tag HTML href ... il problema è, a volte l'utente inserisce URL senza http: // o www. prefisso e così il browser li tratta come URL relativi che non sono mai il caso perché tutti questi siti Web sono per i nostri clienti e sono tutti esterni. C'è un modo per forzare questi URL a essere trattati come assoluti anziché relativi?Collegamento ipertestuale URL forza HTML da trattare come non relativo (assoluto)

Ecco un esempio:

<a target='_blank' href='google.com'>google.com</a> 

Se si tenta questo, vedrai che il browser si assume si tratta di un percorso relativo che non dovrebbe essere il caso.

Grazie


Soluzione:

Ho scelto di verificare la presenza di '//' (perché non so quale sia il protocollo è - potrebbe essere http o https) e, se non trovato, suppongo che è un sito http e mi prefisso l'URL con quello - così insomma alcun modo per forzare il browser a trattare i collegamenti ipertestuali come assoluto

risposta

2

Perché non pre-elaborazione l'ingresso e aggiungere http:// quando è necessario?

+0

Potrei ... ma ci sono molte varianti da gestire, molti URL e qualche volta hanno www. a volte non lo fanno e hanno altri sottodomini, ecc ... non così puliti come si potrebbe pensare ... speravo in un modo più pulito – Ayyoudy

+0

aggiungendo solo http: // funzionava, questo sembra essere pulito come Finché non ti aspetti che cambi protocolli come ftp etc ... –

+0

come ho detto, a volte hanno già http: // quindi dovrei ancora controllare esattamente – Ayyoudy

0

E è un URI relativo.

Se si desidera collegare a http://google.com/ allora è qui che è necessario collegarsi.

È possibile moderare gli URI che si stanno avvolgendo o provare ad indovinare algoritmicamente se si intende che si tratti di un collegamento relativo o meno.

Si noti che non si può presumere che ci dovrebbe essere un www. dal momento che l'uso di quello per i siti Web è solo una convenzione, e non più uno fortemente seguito.

0

È possibile aggiungere // prima dell'URL e questo dovrebbe funzionare.

Problemi correlati