javascript window.open () e simbolo #
-
04-07-2019 - |
Domanda
Sto provando a collegarmi a un file che ha il carattere '#' tramite una chiamata window.open (). Il file esiste e può essere collegato semplicemente usando un normale tag anchor.
Ho provato a sfuggire al carattere '#' con '% 23' ma quando viene elaborato window.open (myurl), '% 23' diventa '% 2523'. Questo mi dice che la mia stringa url viene esclusa dalla chiamata window.open cambiando '%' in '% 25'.
Ci sono modi per aggirare questa fuga extra.
Codice di esempio:
<script language="javascript">
function escapePound(url)
{
// original attempt
newUrl = url.replace("#", "%23");
// first answer attempt - doesn't work
// newUrl = url.replace("#", "\\#");
return newUrl;
}
</script>
<a href="#top" onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(escapePound(url)); return true;">Some Doc</a>
L'URL che urla dice "file: //MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF" non può essere trovato
Soluzione
Cerchi le magie oscure di encodeURI :
window.open("http://your-url.com/" + encodeURIComponent("foo#123.jpg"));
Altri suggerimenti
Hai provato a utilizzare il carattere di escape del testo standard " \ " ;?
\#
Hai provato a non sfuggire all'URL?
<a href="#top onclick="url = '\\\\MyUNCPath\\PropertyRushRefi-Add#1-ABCDEF.RTF'; window.open(url); return true;">Some Doc</a>