2010-07-09 41 views
57

Có thể tạo đối tượng Vị trí mới trong javascript không? Tôi có một url như là một chuỗi và tôi muốn tận dụng những gì javascript đã cung cấp để đạt được quyền truy cập vào các phần khác nhau của nó.Tạo đối tượng Vị trí mới trong javascript

Dưới đây là một ví dụ về những gì tôi đang nói về (Tôi biết điều này không làm việc):

var url = new window.location("http://www.example.com/some/path?name=value#anchor"); 
var protocol = url.protocol; 
var hash = url.hash; 
// etc etc 

là bất cứ điều gì như thế này có thể hoặc tôi về cơ bản sẽ phải tạo này đối tượng bản thân mình?

Trả lời

111

Vâng, bạn có thể sử dụng một yếu tố neo để trích xuất các phụ tùng url, ví dụ:

var url = document.createElement('a'); 
url.href = "http://www.example.com/some/path?name=value#anchor"; 
var protocol = url.protocol; 
var hash = url.hash; 

alert('protocol: ' + protocol); 
alert('hash: ' + hash); 
​ 

Nó hoạt động trên tất cả các trình duyệt hiện đại và ngay cả trên IE 5.5+.

Kiểm tra ví dụ here.

0

Bạn có thể phân tích nó trong một regex để có được những phần như phù hợp với ... Tôi không có mã đầy đủ ngay bây giờ, nhưng điều này có thể được sử dụng để có được những querydata:

var myUrl = window.location.href; 
var matches = myUrl.match(/([^\?]+)\?(.+)/); 
var queryData = matches[2]; 

trận [ 0] là chuỗi đầy đủ, kết quả phù hợp (1) là phần đầu tiên của URL (tối đa?) ... bạn có thể xây dựng cụm từ thông dụng để phân tích từng phần của chuỗi url nếu bạn muốn ...

Bạn cũng có thể sử dụng một trong nhiều thư viện đã có sẵn cho điều này.

8

Bạn có thể tận dụng sức mạnh của một phần tử neo

var aLink = document.createElement("a"); 
aLink.href="http://www.example.com/foo/bar.html?q=123#asdf"; 
alert(aLink.pathname); 
16

Làm thế nào về việc sử dụng các tiêu chuẩn URL object?

var url = new URL("http://www.example.com/some/path?name=value#anchor"); 
var protocol = url.protocol; 
var hash = url.hash; 

Warning: Giao diện này là một chút mới, vì vậy, xin vui lòng, kiểm tra compatibility table và làm các xét nghiệm tại các trình duyệt mục tiêu.

Các vấn đề liên quan