devo creare il mio URL in una funzione javascript, quindi restituire la stringa a href

StackOverflow https://stackoverflow.com/questions/1691781

  •  18-09-2019
  •  | 
  •  

Domanda

Devo chiamare una funzione Javascript da un file a elemento..qualcosa come questo:

href='javascript:myjavascriptfunction();'.Ho bisogno della funzione Javascript per ottenere i valori da un paio di controlli datepicker, creare e urlencode una querystring e restituirla in modo che si apra in una nuova finestra.Finora penso di avere tutto, ma ho difficoltà a creare l'URL e restituirlo correttamente.Questo è il mio a elemento finora.

<a href='javascript:myjavascriptfunction();' id="myhyperlink" target="_blank">

Nella mia funzione Javascript sto costruendo la stringa e restituendola in questo modo:

return queryString;

Risultato:fai clic sul collegamento e si apre una nuova finestra con l'URL della mia finestra principale con il nome della chiamata di funzione aggiunto?

È stato utile?

Soluzione

È necessario utilizzare window.open () per forzare una nuova finestra, credo che l'unica ragione è comportarsi come lo è per voi è che stai dicendo è che per aprire javascript in una nuova finestra, e sta facendo esattamente quello che stai dicendo che.

Dopo aver ottenuto il vostro URL assemblato, fare un window.open(urlvar); e si dovrebbe ottenere quello che stai cercando.

Inoltre, controllare questo post per come fare un <a href=""> ordinata con un'onclick che degrada con grazia. Come minimo, fare href="javascript:void(0)" e quindi onclick="myjavascriptfunction(); return false;".

Altri suggerimenti

Il valore restituito di una funzione JavaScript non è disponibile per il browser come HREF per il collegamento.Per farlo funzionare come intendi, dovresti ottenere l'elemento A in JavaScript e interferire con il suo HREF.Ciò è possibile:

 var link = document.getElementById ("myhyperlink");
 link.href = "http://example.com/" + jiggerypokery ();

Dove jiggerypokery () è l'URL che desideri creare.

Tuttavia quanto sopra è stupido, poiché sovrascrive il collegamento a se stesso e l'utente probabilmente dovrebbe comunque fare clic due volte su di esso.Come dice Pablo, dovresti usarlo window.open qui, così dentro myjavascriptfunction ()

var gotopage = "http://example.com/" + jiggerypokery ();
window.open (gotopage);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top