2012-06-04 51 views
7

Cập nhật"javascript :;" cho href thuộc tính trong thẻ neo HTML

Mã dưới đây có ý nghĩa gì và làm gì? Nó cần JavaScript để làm việc?

<a href="javascript:;">Do Somthing</a> 

Cập nhật

là tương đương với dưới ?:

<a href="">Do Somthing</a> 
+1

AFA IK Điều đó có nghĩa là "không làm gì cả" – Alex

+1

Tại sao bạn không thử? –

Trả lời

13

Sử dụng "javascript:" là sự khởi đầu của một thuộc tính href để một liên kết cho công cụ javascript sử dụng phần còn lại của chuỗi để được hiểu là javascript. Trong trường hợp này, nó sẽ gây ra một lỗi cú pháp trong việc giải thích nghiêm ngặt, vì đây là một dòng javascript rỗng có hiệu quả với một dấu chấm phẩy đóng. Như thế này:

; 

Hầu hết các trình duyệt sẽ không gửi lỗi, vì javascript trên liên kết là cú pháp cũ và cần tránh khi có thể. Bạn có thể sử dụng nó một cách an toàn như một liên kết không làm gì cả, tuy nhiên tôi sẽ không khuyên bạn nên sử dụng nó.

Nếu bạn muốn có một liên kết không làm gì cả, bạn có thể sử dụng thay vì:

<a href="#">Link</a> 
<a href="javascript:void(0);">Link</a> 
<a href="javascript:return false;">Link</a> 

Sử dụng một chuỗi href rỗng sẽ làm cho các trình duyệt giải thích nó như là một liên kết tương đối. Các URL không bắt đầu bằng giao thức hoặc số nhận dạng như tên miền hoặc địa chỉ IP cấp cao sẽ được coi là liên kết tương đối. Ví dụ: liên kết "index.htm" trên miền "google.com" sẽ tạo liên kết "google.com/index.htm". Trong cùng một cách, chuỗi href "" sẽ tạo liên kết "google.com/" và vì vậy các chuỗi rỗng sẽ khiến trình duyệt điều hướng đến một trang mới.

Thông thường liên kết sẽ không hiển thị con trỏ hoặc định dạng phần tử giống như liên kết nếu bạn không chỉ định thuộc tính href, điều này là để bạn có thể sử dụng nó làm phần tử "neo" mà bạn có thể liên kết trong một URL.Chẳng hạn như "http://google.com/#an_anchor" sẽ đưa bạn đến một neo tương tự như sau: <a id="an_anchor">This is an anchor</a>

Tuy nhiên bạn có thể sử dụng CSS để buộc các liên kết phải được định dạng, như thế này:

CSS:

a { 
    color: #00c; 
    text-decoration: underline; 
    cursor: pointer; 
} 

HTML:

<a>This is a link.</a> 

Ví dụ: http://jsfiddle.net/J3RfH/

+0

Liệu ba neo đó có làm cho trang nhảy lên đầu trang không? – Pingpong

+0

'javascript:;'/';' chắc chắn không phải là lỗi cú pháp. –

0

Nó không làm gì và có nghĩa là để thay thế hành vi mặc định của a thẻ để đi đâu đó với không-op, làm cho liên kết về cơ bản không thể nhấp được.

5

Đây là số không.

Cách phổ biến khác là href="#" nhưng yêu cầu bạn phải return false trong sự kiện onclick để tránh nhảy lên đầu trang và nhận được # trong thanh địa chỉ. Lưu ý rằng thường là một ý tưởng hay để liên kết hoạt động cả khi có và không có JavaScript, tức là làm một cái gì đó như là <a href="/whatever" onclick="dowhatever(); return false;"> để mọi người không có JavaScript sẽ đơn giản mở trang theo cách cổ điển trong khi những người có JavaScript đã làm với JS.

Nếu có gì không phải làm việc mà không Javascript ở tất cả, ví dụ: không có giá trị hữu ích href, xem xét không sử dụng thẻ a ở tất cả nhưng sử dụng một span với một phong cách thích hợp (cursor:pointer và có thể được gạch dưới).

0

nếu bạn sẽ chỉ định một số chức năng sau : sau đó nó sẽ được gọi bằng <a> tag.But đây bạn đã không quy định bất kỳ chức năng nên không có gì sẽ xảy ra

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