Morten Forsker
15. august 2020 - 00:38 Der er 3 kommentarer

Søg efter # og fjern href

Hej

Håber der er en der kan hjælpe mig med at løse denne:
$('a').each(function () {
                  var getURL = $(this).attr("href");
                  var removeUndefined = $(this).attr("href", getURL.replace("undefined#" + Cookies.get('guid'), "#"));

                    removeUndefined

                })

Det jeg prøver på er at når et link har: undefined#
Skal den enden fjerne href, eller gøre så # denne ikke bliver link, så siden ikke refresh.

Det er nødvenligt da det er en dropdown menu

Har kæmpet noget med det til aften, men syntes ikke jeg kan.

Håber du måske kan se hvad jeg gør galt?

Med venlig hilsen
Morten
Slater Ekspert
15. august 2020 - 06:55 #1
Det virker lidt som et XY problem, hvor du tackler en bestemt løsning i stedet for at løse problemet fra grunden. Hvorfor ikke forhindre den i at udskrive de ting til at starte med? Eller det er måske et library du ikke kan styre?

I hvert fald overkomplicerer du det ved at gennemgå alle links. Du kan bare tjekke for href med selectoren. F.eks. sådan:

$('a[href="undefined#"]').each(function() {
    this.href = "java script:;";
});

At sætte href til "java script:;" er den hurtigste måde at forhindre et klik i at gøre noget, men kønt er det ikke. Den mere "korrekte" måde ville muligvis være at sætte en click-handler og preventDefault'e den. Men igen, den rigtig korrekte måde ville være slet ikke at udskrive de links fra starten.
Slater Ekspert
15. august 2020 - 06:56 #2
Hov, jeg kan se Eksperten laver om så der står "java script" i to ord. Nok et underligt forsøg på at forhindre XSS, hvilket godt nok er ringe på en side som denne.
Det skal altså stå i et ord.
Morten Forsker
15. august 2020 - 07:33 #3
Hej

Kan godt se det, men er bare nød til at lave de links med dette #..........
Men bare uden undefined
Og har prøve nogle forskellige ting men lad os gå til hovede problemet :)
Her er en kode der laver linksne på siden:

if($('body').hasClass('single') < 1) {
                var param = document.URL.split('#')[1];
                $("a").each(function () {
                    var $this = $(this);
                    var _href = $this.attr("href");

                    if (param == undefined) {
                        $this.attr("href", _href + '#' + Cookies.get('guid'));
                    } else if (!Cookies.get('guid') == param) {
                        $this.attr("href", _href + '#' + Cookies.get('guid'));
                    } else {
                        $this.attr("href", _href + '#' + param);
                    }
                });

                    Cookies.set('guid', param, {expires: 7, path: '/'})
                var getGUID = $('a').attr("href").split('#')[1]

                Cookies.set('guid', getGUID, {expires: 7, path: '/'})
            }


                $('a.cart-customlocation').attr("href", document.URL + '#' + Cookies.get('guid'));

Jeg prøvet at få kontrol ved denne:
if (param == undefined) {
                        $this.attr("href", _href + '#' + Cookies.get('guid'));
                    } else if (!Cookies.get('guid') == param) {
                        $this.attr("href", _href + '#' + Cookies.get('guid'));
                    } else {
                        $this.attr("href", _href + '#' + param);
                    }

Men hjælper ikke.
Ved godt jeg er ret ny i jQuery, og derfor ikke har forstand på biblioteket, endnu.

Jeg er glad for du vil hjælpe med på rette vej.

Med venlig hilsen
Morten
Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links

Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





Premium
Sådan har Matas fået den digitale tilstedeværelse til at eksplodere på tre år
Matas er på få år strøget ind som et af de fem mest kendte, danske brands på nettet. Det er sket gennem en ambitiøs strategi, fortæller ecommerce-direktør Brian Andersen til Computerworld.
Computerworld
Biden sender skjult besked til kode-folket: "Hvis du læser dette, har vi brug for din hjælp”
En stående invitation er blevet opdaget i kildekoden på Det Hvide Hus' hjemmeside. Men den er kun til de eksperter, der selv kan finde den.
CIO
Podcast: Her er seks gode råd om ledelse og digitalisering fra danske top-CIO'er
The Digital Edge: Vi har talt med 17 af Danmarks dygtigste digitale ledere - og samlet deres seks bedste råd om digitalisering og ledelse. Få alle rådene på 26 minutter i denne episode af podcasten The Digital Edge.
White paper
Kunsten at navigere i en tilpasningsøkonomi
Evnen til at tilpasse sig en verden i konstant forandring bliver afgørende for virksomhedens mulighed for at vækste i fremtiden. Ét af de finansielle håndtag du kan skrue på, er en hel eller delvis outsourcing af it-driften. I e-bogen ”Kunsten at navigere i en tilpasningsøkonomi” får du viden om, hvordan din virksomhed kan bruge tilpasningsøkonomi til at håndtere fremtidens krav til it. Vi spørger blandt andet: - Kan din virksomhed skalere og tilpasse sin digitale kapacitet og økonomi? - Har dine kunder tillid til, at du har de skarpeste it-løsninger? - Ville I kunne styrke forretningen ved at give jeres it mere fokus? - Kan I få øget funktionalitet til samme pris? Vi fokuserer på risiko, økonomi, fokus og valg af it-partner, som er fire opmærksomhedspunkter du skal have styr på for at lykkes med at tilpasse virksomheden til at modstå forandringerne i verden.