IT

jquery 또는 javascript로 기본 URL을 얻는 방법은 무엇입니까?

lottoking 2020. 7. 30. 09:35
반응형

jquery 또는 javascript로 기본 URL을 얻는 방법은 무엇입니까?


joomla php에서는 $this->baseurl기본 경로를 얻을 있습니다. jquery에서 기본 경로를 얻었습니다.

기본 경로는 다음 예 중 하나 일 수 있습니다.

http://www.example.com/
http://localhost/example
http://www.example.com/sub/example

example또한 변경 될 수 있습니다.


이 당신을 도울 것입니다 ...

var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

괜찮을 것 같음

var base_url = window.location.origin;

var host = window.location.host;

var pathArray = window.location.pathname.split( '/' );

이 기본 URL을 얻을 것입니다

var baseurl = window.location.origin+window.location.pathname;

이것은 서버 측 속성에서 Javascript에서는 불가능합니다. 클라이언트의 Javascript가 위치를 알 수 없습니다. 가장 좋은 방법은 $this->baseurl자바 펼쳐 페이지에 값을 포함시킨 다음이 값 ( phpBaseUrl) 을 사용하는 것 입니다.

그런 다음 다음과 같이 URL을 사용할 수 있습니다.

var loc = window.location;
var baseUrl = loc.protocol + "//" + loc.hostname + (loc.port? ":"+loc.port : "") + "/" + phpBaseUrl;

이것은 매우 오래된 질문이지만 개인적으로 사용하는 것은 다음과 같습니다.

표준 / 기본 URL 가져 오기 오기

많은 사람들이 이미 사용했듯이 대부분의 상황에서 작동합니다.

var url = window.location.origin;


절대 기본 URL 포함

그러나이 간단한 접근 방식을 사용하여 포트 번호를 제거 할 수 있습니다.

var url = "http://" + location.host.split(":")[0];


기본 URL 설정

보너스로 기본 URL을 전체적으로 재정의 할 수 있습니다.

document.head.innerHTML = document.head.innerHTML + "<base href='" + url + "' />";

var getUrl = window.location;
var baseurl = getUrl.origin; //or
var baseurl =  getUrl.origin + '/' +getUrl.pathname.split('/')[1]; 

그러나 CodeIgniter (또는 php joomla)의 baseurl ()은 프레임 워크의 .htaccess 파일에서 baseurl을 사용할 수있는 값을 반환 할 수 없습니다.

예를 들면 다음과 같습니다.

localhost에 다음과 같은 .htaccess 파일이있는 경우 :

RewriteEngine on
RewriteBase /CodeIgniter/
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

$ this-> baseurl ()은 http : // localhost / CodeIgniter /를 반환합니다


여러 Joomla 프로젝트에서 쳤습니다. 내가 가장 간단한 방법은 템플릿에 숨겨진 입력 필드를 추가하는 것입니다.

<input type="hidden" id="baseurl" name="baseurl" value="<?php echo $this->baseurl; ?>" />

JavaScript에서 가치가 필요할 때 :

var baseurl = document.getElementById('baseurl').value;

순수한 JavaScript를 사용하는 것만 큼 단순하지 않고 작업을 완료합니다.


얼마 전에 같은 문제가 있었는데 내 문제는 단순히 기본 URL이 필요하다는 것입니다. 여기에는 많은 세부 옵션이 있지만이 문제를 해결하려면 window.location개체 를 사용하기 만하면됩니다 . 실제로 이것을 브라우저 콘솔에 입력하고 Enter 키를 눌러 옵션을 선택하십시오. 제 경우에는 다음과 같습니다.

window.location.origin

jQuery에서 기본 URL을 얻는 가장 쉬운 방법

window.location.origin

모든 사람이 개발 단계에서 HTML 기본 태그를 만든 다음 href를 동적으로 할당하는 것이 좋습니다. 따라서 클라이언트가 사용하는 호스트가 무엇이든 프로덕션에서 자동으로 추가됩니다.

<html>
 <title>Some page title</titile>
  <script type="text/javascript">
    var head  = document.getElementsByTagName('head')[0];
    var base = document.createElement("base");
    base.href = window.document.location.origin;
    head.appendChild(base);
  </script>
 </head>
 ...

따라서 localhot : 8080에있는 경우베이스에서 링크되거나 참조 된 모든 파일에 도달하게됩니다. 예 : http://localhost:8080/some/path/file.htmlwww.example.com에있는 경우http://www.example.com/some/path/file.html

또한 모든 위치에서 hrefs에서 glob과 같은 참조를 사용해서는 안됩니다. 예 : Parent location cause http://localhost:8080/not http://localhost:8080/some/path/.

기본 URL없이 완전한 문장으로 모든 하이퍼 링크를 참조한다고 가정합니다.


형식은 호스트 이름 / 경로 이름 / 검색입니다.

따라서 URL은 다음과 같습니다.

var url = window.location.hostname + window.location.pathname + window.location.hash

귀하의 경우

window.location.hostname = "stackoverflow.com"
window.location.pathname ="/questions/25203124/how-to-get-base-url-with-jquery-or-javascript"
window.location.hash = ""

따라서 기본적으로 baseurl = hostname = window.location.hostname


window.location.origin+"/"+window.location.pathname.split('/')[1]+"/"+page+"/"+page+"_list.jsp"

Jenish 답변과 거의 동일하지만 조금 더 짧습니다.


나는 같은 무대에 있었고이 솔루션은 나를 위해 작동합니다.

보기에서

<?php
    $document = JFactory::getDocument();

    $document->addScriptDeclaration('var base = \''.JURI::base().'\'');
    $document->addScript('components/com_name/js/filter.js');
?>

js 파일 base에서 예를 들어 시나리오에서 변수로 액세스 합니다.

console.log(base) // will print
// http://www.example.com/
// http://localhost/example
// http://www.example.com/sub/example

신용을 제공하기 위해이 정보를 어디에서 가져 왔는지 기억 나지 않습니다. 찾으면 답변을 수정하겠습니다.


var getUrl = window.location;
var baseUrl = getUrl .protocol + "//" + getUrl.host + "/" + getUrl.pathname.split('/')[1];

다음은 file://URL 에서도 작동하는 빠른 방법입니다 .

이 한 줄짜리를 생각해 냈습니다.

[((1!=location.href.split(location.href.split("/").pop())[0].length?location.href.split(location.href.split("/").pop())[0]:(location.protocol,location.protocol+"//" + location.host+"/"))).replace(location.protocol+"//"+location.protocol+"//"+location.protocol+"://")]

example.com변경 될 수 있다고 언급 했으므로 실제로 스크립트에 상대 경로 표기법을 사용할 수 있으려면 기본 URL이 필요하다고 생각합니다. 이 특별한 경우에는 스크립팅을 사용할 필요가 없습니다. 대신 헤더에 기본 태그를 추가하세요.

<head>
  <base href="http://www.example.com/">
</head>

저는 보통 PHP를 통해 링크를 생성합니다.


누군가가 이것을 매우 강력한 기능으로 나누고 싶은 경우

    function getBaseURL() {
        var loc = window.location;
        var baseURL = loc.protocol + "//" + loc.hostname;
        if (typeof loc.port !== "undefined" && loc.port !== "") baseURL += ":" + loc.port;
        // strip leading /
        var pathname = loc.pathname;
        if (pathname.length > 0 && pathname.substr(0,1) === "/") pathname = pathname.substr(1, pathname.length - 1);
        var pathParts = pathname.split("/");
        if (pathParts.length > 0) {
            for (var i = 0; i < pathParts.length; i++) {
                if (pathParts[i] !== "") baseURL += "/" + pathParts[i];
            }
        }
        return baseURL;
    }

쉬운

$('<img src=>')[0].src

src-name이 비어있는 img를 생성하면 브라우저가 기본 URL이 있는지 여부에 관계없이 자체적으로 기본 URL을 계산합니다 /index.html.


이것을 헤더에 넣으면 필요할 때마다 사용할 수 있습니다.

var base_url = "<?php echo base_url();?>";

당신은 얻을 것이다 http://localhost:81/your-path-filehttp://localhost/your-path-file.

참고 URL : https://stackoverflow.com/questions/25203124/how-to-get-base-url-with-jquery-or-javascript

반응형