Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Problema concettuale sugli href


    Vorrei scrivere un pezzo di programma in Javascript che, data una stringa contenente del codice html, individui all'interno di quel codice tutti i collegamenti ed esegua una certa funzione ogni volta passando come argomento il collegamento trovato. Pensavo che bastasse cercare con indexOf tutti gli "http://" e seguirli semplicemente fino alla fine. Tuttavia alcune pagine (quasi tutte) invece di mettere il collegamento completo con tutto l'"http://" semplicemente mettono un indirizzo relativo. Grazie a voi, una volta individuato l'indirizzo relativo, ho la possibilità di convertirlo in indirizzo assoluto. Il problema, però, è trovarlo. Pensavo di metterci una ricerca della sottostringa "href" e saltare di qualche carattere a destra, solo che poi è un macello, perchè c'è chi scrive "<a href='Pincopallo.htm'>" e chi scrive "<a href = 'Pincopallo.htm'>" allora ho pensato di cercare le prime virgolette dopo href e aggiungere uno, ma mi chiedevo se a qualcuno di voi viene in mente una idea un pò più semplice...

    Grazie a tutti!
    Araganaus

  2. #2
    Moderatrice di Grafica, Cerco e offro lavoro L'avatar di Myaku
    Registrato dal
    Nov 2006
    Messaggi
    10,349
    premetto che non mi è molto chiaro ciò che stai facendo, non ti è sufficiente fare una ricerca per i tag <a>?

  3. #3
    Utente di HTML.it L'avatar di floyd
    Registrato dal
    Apr 2001
    Messaggi
    3,837
    se puoi accedere a document
    var list = document.getElementsByTagName('a');
    for (var i=0; i<list.length; i++) {
    var href = list.item(i).href;
    }

  4. #4

    Dunque...

    ... io ho il codice html su di una stringa... quindi... non lo so... che faccio, metto tutto in un frame nascosto e uso così? Solo che poi cambia la sintassi? Come faccio a dire frame invece di document? E non c'è un modo per farlo senza frames? No, immagino, perchè poi non lo analizza...
    Hmmmmm....

    Araganaus

  5. #5
    Basta usare una regex:
    codice:
    //'codice' è il codice html
    var indirizzi = codice.match(/<a[^>]+href=['"][^'"]*['"]/g);
    for(var i = 0, l = indirizzi.length; i!=l; i++) {
      var href = indirizzi[i].match(/href=['"](.+)['"]$/)[1];
      //fai qualcosa con la variabile href
    }
    Provato.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.