collegamento a intestazione su pagina diversa e rendere visibile il paragrafo dal collegamento a piè di pagina mentre non si è collegati alla pagina

Questa domanda è il seguito di questa domanda: come faccio a collegarmi a un’intestazione e a far scattare un evento click quando si fa clic sul collegamento in JavaScript?

Fondamentalmente sto provando a collegarmi dal piè di pagina su qualsiasi pagina (il piè di pagina è lo stesso in tutte le pagine) e faccio due cose: spostati nella posizione appropriata sulla pagina e visualizzi un paragrafo precedentemente nascosto (display: none;) (p) .

Ecco il problema: Nel link qui sopra non sono disponibili soluzioni che consentano la situazione in cui NON si è nella pagina dei servizi (la pagina in cui si trovano i collegamenti discussi). In altre parole, se non si è nella pagina Servizi e si fa clic su un collegamento alla pagina dei servizi, viene chiamato js e ogni volta viene eseguito, ad eccezione del paragrafo non espanso. Se clicco su uno dei link del footer di servizio mentre nella pagina dei servizi tutto funziona correttamente.

Come faccio a visualizzare p: block; quando non sono nella pagina dei servizi (anche la pagina in cui sto collegando)?

Ho provato window.location, ma non sembra funzionare. Ho anche provato alcune soluzioni che ho trovato online per ritardare il js fino a quando la pagina non si carica, ma anche quelle non funzionavano.

Grazie in anticipo.

ps – Mi piacerebbe vedere se c’è una soluzione javascript, quindi nessuna jquery per favore.

markup:

altservice1

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx


altservice2

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

js:

 var target, sericeDiv, pToDisplay function toggle(link) { target = link.getAttribute("data-toggle"); sericeDiv = document.getElementById(target) pToDisplay = sericeDiv.getElementsByTagName('p')[0] document.getElementById(target).className = "service-desc"; pToDisplay.className = "p-on-white service-desc" } 

css:

 .p-hide{ display: none; } 

Non ho capito completamente la domanda ma potresti impostare l’ href come # imposta un attributo dati, qualcosa come un data-href="your/location.html" e creare un metodo e impostarlo onclick=yourProcess() e quando devi redirect per ottenere i dati necessari se vuoi ritardare qualcosa puoi usare setTimeout()

Dovresti dare un’occhiata per l’attribuzione dei dati , gli eventi di cronometraggio

Spero che aiuti…

Vedi i miei commenti qui sotto, ma questo lo ha risolto per me. Posso cliccare sul link del piè di pagina che va alla pagina dei servizi, sia che sia nella pagina dei servizi o meno.

Un grande merito va a MikeVelazco. Senza i suoi commenti non avrei potuto arrivare così lontano.

markup:

 

altFinancial Analysis, Enterprise Performance, & Reporting

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

altSoftware, Systems, & Office Automation Solutions

xxxxxxxxxxxxxxxxxxxxxxxxxxxxx

js:

 // link from footer link to p in services that needs to be displayed when you are on the services page already function toggle(link) { var target, sericeDiv, pToDisplay; target = link.getAttribute("data-toggle"); sericeDiv = document.getElementById(target) pToDisplay = sericeDiv.getElementsByTagName('p')[0] document.getElementById(target).className = "service-desc"; pToDisplay.className = "p-on-white service-desc" } //when a footer link is clicked that goes to a service on the service page //this makes the p below the heading display function openP(){ var theURL = document.URL; var gotArray = theURL.split("#"); var pToDisplay = document.getElementById("p-" + gotArray[1]); pToDisplay.className = "p-on-white service-desc"; } window.onload = openP(); 

css:

 .p-hide{ display: none; }