2009-10-26 34 views
5

tiết lộ đầy đủ mà tôi không biết Javascript, tôi đang cố gắng để có được javascript này:JavaScript bookmarklet và URL mã hóa

javascript:location = 'http://validator.w3.org/check?uri=' +escape(location)&doctype=Inline&charset=detect+automatically&ss=1&group=0&user-agent=W3C_Validator/1.654'; 

để làm việc như một Bookmarklet để gửi một URL của định dạng này:

http://validator.w3.org/check?uri=http://www.wordpress.org&charset=%28detect+automatically%29&doctype=Inline&ss=1&group=0&user-agent=W3C_Validator%2F1.654 

tới bộ định giá W3C.

Tôi đang mã hóa URL Javascript với this encoder, nhưng tất nhiên, tôi đang làm điều gì đó sai, hoặc trong Javascript của tôi hoặc trong quá trình mã hóa nó.

Bất kỳ ai có ý tưởng cụ thể hoặc nói chung về dấu trang Javascript và mã hóa URL? Cảm ơn.

Trả lời

5

Hai Lỗi:

  1. Bạn cần phải truy cập vào "href" thành viên của đối tượng vị trí:

    window.location. href = http://foo.com

  2. Bạn có hợp lệ JavaScript:

    javascript: vị trí = 'http://validator.w3.org/check?uri=' + thoát (địa điểm) PLUS SIGN VÀ QUOTE MISSING ĐÂY & DOCTYPE = Inline & charset = phát hiện + tự động & ss = 1 & nhóm = 0 & tác nhân người dùng = W3C_Validator/1.654 ';

tôi khuyên bạn nên sử dụng này:

javascript:(function(){window.location.href='http://validator.w3.org/check?uri='+escape(window.location.href)+'&doctype=Inline&charset=detect+automatically&ss=1&group=0&user-agent=W3C_Validator/1.654';})() 
+1

Thanks for the help. Tôi nghĩ rằng tôi đã có ít nhất một vài điều sai trái. Những gì tôi đã kết thúc với các tác phẩm đó là: 'javascript: (function() {window.location.href = 'http: //validator.w3.org/check? Uri =' + escape (window.location) + '& doctype = Inline & ss = 1 & group = 0 & user-agent = W3C_Validator/1.654';})() ' Tôi phải quay lại API tại W3C và tìm hiểu tôi đã làm gì sai với định dạng URL yêu cầu của bộ ký tự của trang cần được kiểm tra. – markratledge

+0

'window.location.href = http: // foo.com' là không cần thiết. 'location = http: // foo.com' hoạt động tốt. –