No joomla php lá eu posso usar $this->baseurl
para obter o caminho base, mas eu queria obter o caminho base no jquery.
O caminho base pode ser qualquer um dos seguintes exemplos:
http://www.example.com/
http://localhost/example
http://www.example.com/sub/example
O example
também pode mudar.
javascript
jquery
Navin Rauniyar
fonte
fonte
Respostas:
Este irá ajudá-lo ...
fonte
http://localhost/myapp/what/ever/sub/folder
-> getBaseUrl ->http://localhost/myapp
:-)192.168.0.23/~sites/site/html/
em vez desite.dev
. Obter o nome completo do caminho com Javascript também não é uma opção, porque um site pode ter qualquer número de subdiretórios virtuais.Acho que vai dar certo pra você
fonte
window.location.origin
Isso obterá o URL base
fonte
Essa é uma pergunta extremamente antiga, mas aqui estão as abordagens que eu pessoalmente uso ...
Obter URL padrão / base
Como muitos já afirmaram, isso funciona para a maioria das situações.
Obter URL base absoluto
No entanto, essa abordagem simples pode ser usada para remover qualquer número de porta.
Edit: Para abordar a preocupação, apresentada por Jason Rice , o seguinte pode ser usado para inserir automaticamente o tipo de protocolo correto ...
Definir URL base
Como um bônus - o URL base pode ser redefinido globalmente.
fonte
Isso não é possível no javascript, porque esta é uma propriedade do servidor. Javascript no cliente não pode saber onde o joomla está instalado. A melhor opção é incluir de alguma forma o valor de
$this->baseurl
na página javascript e, em seguida, usar esse valor (phpBaseUrl
).Você pode criar o URL assim:
fonte
loc.host
a porta, para que uma URL comohttp://localhost:8082/
esse método produzahttp://localhost:8082:8082/
,window.location.hostname
deve ser usada.document.baseURI
retorna o URL base também respeitando o valor na<base/>
tag https://developer.mozilla.org/en-US/docs/Web/API/Node/baseURIfonte
Teve o mesmo problema há um tempo atrás, meu problema era: eu simplesmente precisava do URL base. Existem muitas opções detalhadas aqui, mas para contornar isso, basta usar o
window.location
objeto. Na verdade, digite isso no console do navegador e pressione Enter para selecionar suas opções. Bem, para o meu caso, era simplesmente:fonte
Mas você não pode dizer que a baseurl () do CodeIgniter (ou php joomla) retornará o mesmo valor, pois é possível alterar a baseurl no arquivo .htaccess dessas estruturas.
Por exemplo :
Se você tiver um arquivo .htaccess como este em seu host local:
O $ this-> baseurl () retornará http: // localhost / CodeIgniter /
fonte
Eu me deparei com essa necessidade em vários projetos do Joomla. A maneira mais simples de encontrar o endereço é adicionar um campo de entrada oculto ao meu modelo:
Quando preciso do valor em JavaScript:
Não é tão chique quanto usar JavaScript puro, mas simples e faz o trabalho.
fonte
a maneira mais fácil de obter o URL base no jQuery
fonte
Eu recomendaria a todos que criassem a tag base HTML no desenvolvimento e atribuíssem o href dinamicamente, para que, na produção, seja qual for o host que um cliente use, ele será automaticamente adicionado a ele:
Portanto, se você estiver em localhot: 8080, alcançará todos os arquivos vinculados ou referenciados a partir da base, por exemplo:
http://localhost:8080/some/path/file.html
se estiver em www.example.com, seráhttp://www.example.com/some/path/file.html
Observe também que, em todos os locais em que você está, você não deve usar referências como globs em hrefs, por exemplo: O local pai
http://localhost:8080/
nãohttp://localhost:8080/some/path/
.Pretenda que você faça referência a todos os hiperlinks como sentenciados completos, sem o URL básico.
fonte
O formato é nome do host / nome do caminho / pesquisa
Portanto, o URL é:
Para o seu caso
Então, basicamente, o baseurl = hostname = window.location.hostname
fonte
Surpreende-me que nenhuma das respostas considere o URL base se ele tiver sido definido na
<base>
tag. Todas as respostas atuais tentam obter o nome do host ou o nome do servidor ou a primeira parte do endereço. Essa é a lógica completa que também considera a<base>
tag (que pode se referir a outro domínio ou protocolo):Formato Jquery:
Sem se envolver com a lógica acima, a solução abreviada que considera a
<base>
tag ewindow.location.origin
:Js:
Jquery:
Nota final: para um arquivo local no seu computador (não em um host), o
window.location.origin
único retorna afile://
solução, mas a classificação acima, retorna o caminho correto completo.fonte
<base>
elemento.quase igual à resposta de Jenish, mas um pouco mais curta.
fonte
Eu estava no mesmo palco e esta solução funciona para mim
Na vista
No arquivo js, você acessa
base
como uma variável, por exemplo, no seu cenário:Não me lembro de onde tomo essas informações para dar crédito; se eu as encontrar, editarei a resposta
fonte
fonte
Aqui está algo rápido que também funciona com
file://
URLs.Eu vim com essa frase:
fonte
Você mencionou que isso
example.com
pode mudar, então eu suspeito que, na verdade, você precisa do URL base apenas para poder usar a notação de caminho relativo para seus scripts. Nesse caso em particular, não há necessidade de usar scripts - em vez disso, adicione a tag base ao seu cabeçalho:Normalmente, eu gero o link via PHP.
fonte
Caso alguém queira ver isso dividido em uma função muito robusta
fonte
Fácil
Gera um img com src-name vazio força o navegador a calcular o URL-base sozinho, não importa se você possui
/index.html
ou qualquer outra coisa.fonte
Divida e junte-se ao URL:
fonte
Coloque isso no seu cabeçalho, para que fique disponível sempre que você precisar.
Você receberá
http://localhost:81/your-path-file
ouhttp://localhost/your-path-file
.fonte