inserați caractere speciale în hash-ul URL-ului folosind JavaScript

Vreau să adaug hash la URL-ul meu. De exemplu

http://somesite.com/somesubdomain#p1=1&p2=2&p3=3

când încerc să fac asta, tot ce am este este:

http://somesite.com/somesubdomain#p1=1%23p2=2%23p3=3

Deci, pe scurt, cum pot adăuga caractere speciale în hash-ul meu de URL.

EDIT:

Eu folosesc managerul de istoric al browser-ului YUI.

var hash = "p1=1&p2=2&p3=3"
YAHOO.util.History.navigate("state",hash);
0
Codul URL este ceea ce căutați. Asta e ceea ce vrei. stackoverflow.com/questions/332872/& hellip;
adăugat autor DarthVader, sursa
Nu pot folosi window.location, nici encodeURIComponent nu este util în cazul meu, poate că ar trebui să mă uit în API-ul History YUI.
adăugat autor riship89, sursa
@DmitryPashkevich: Nu, nu. Mă obligă să folosesc mai multe module dacă vreau să introduc "&". Deci, niciun caracter special nu poate fi o parte a șirului hash pentru managerul de istorie YUI.
adăugat autor riship89, sursa
Furnizați codul pe care încercați să îl executați. window.location = 'http://somehost /' + '# p1 = 1 & = p2 = 2' funcționează perfect pentru mine. Ai experienta asta in toate browserele?
adăugat autor Dmitry Pashkevich, sursa
Dar YUI nu decodifică corect starea dvs. înapoi atunci când aveți nevoie de ea?
adăugat autor Dmitry Pashkevich, sursa
Dacă doriți să utilizați metode-cadru, trebuie să vă conformați modului în care dezvoltatorii intenționează să fie utilizați (de exemplu, mai multe module, dacă am înțeles corect). În caz contrar, utilizați o bibliotecă de router terță parte sau implementați-vă propriul.
adăugat autor Dmitry Pashkevich, sursa

1 răspunsuri

Modul în care ar trebui să faci acest lucru în YUI pare să fie ceva de genul:

YAHOO.util.History.navigate('p1','1');
YAHOO.util.History.navigate('p2','2');
YAHOO.util.History.navigate('p3','3');

If you want the browser URL string to be http://somesite.com/somesubdomain#p1=1&p2=2&p3=3

Exemplu de calendar din docs demonstrează acest lucru.

0
adăugat
Exemplul de calendar utilizează mai multe module, pe care nu vreau să le fac. Deci, se pare că nu este posibil să se spună browser-ului ce parte din șirul meu ar trebui să fie codificată. Dar, oricum, mulțumesc pentru răspuns. Vom închide întrebarea sau vom accepta răspunsul.
adăugat autor riship89, sursa
Nu văd o problemă aici, trebuie doar să lăsați YUI codul url pentru datele de stare dacă doriți să îl atribuiți unui singur modul și apoi să îl decodificați și să îl analizați în logica modulului dvs. YUI trebuie să codifice aceste date pentru a fi capabil să spună între diferite module. Dacă aveți nevoie de sugestii privind îmbunătățirea arhitecturii aplicațiilor, deschideți o nouă întrebare.
adăugat autor Dmitry Pashkevich, sursa
JavaScript, România - Moldova
JavaScript, România - Moldova
328 participanți

Comunitatea Română JavaScript: github.com/js-ro Pentru confort, opriți notificările. Parteneri: @node_ro, @php_ro, @python_ro, @seo_ro, @RomaniaGroup, @ai_ro, @Grupuri_IT Offtop: @holywars_ro Joburi: @js_jobs_ro Sponsored with ❤️ by ciupacabra.com