2009-11-23 38 views
7

Đây là câu hỏi giống như THIS ONE, tôi không thể trả lời câu hỏi đó nữa, vì vậy tôi đăng lại nó bằng tài khoản của mình.
Xin lỗi vì sự lộn xộn.Gọi href từ JavaScript

Tôi cần tập lệnh Greasemonkey khi tải trang kích hoạt liên kết href như 'javascript: FUNCTION'. Tôi đã nhìn thấy đoạn mã này:

<script language="Javascript" type="text/javascript"> 
    function somescript() { 
      window.location.href = document.getElementById('ololo').href; 
    } 
</script> 

<a href="javascript:alert('test');" id="ololo">test</a> 
<br /> 

<a href="javascript:somescript()">click me</a> 

và, trong khi nó hoạt động trên một trang địa phương ngay cả khi sử dụng onload, nó không hoạt động khi tôi sử dụng nó trong kịch bản của tôi.

Có thể tôi đang thiếu thứ gì đó khi chuyển mã từ nội dung trang html sang tập lệnh Greasemonkey.

Tôi hy vọng lần này câu hỏi rõ ràng hơn, xin lỗi vì bất kỳ sự hiểu lầm nào, nhưng tôi vẫn là người mới bắt đầu với JS.

+1

Viết kịch bản trơn của bạn – Yacoby

+1

Tập lệnh vẫn là WIP, nhưng hàm tôi cần là tập lệnh đầu tiên sẽ hoạt động, nếu không sẽ không có gì khác. Để giữ cho rõ ràng hơn: phần còn lại của tập lệnh không xung đột với chức năng này. – Gurzo

+0

Vì vậy, bạn có gặp bất kỳ lỗi nào không? – Yacoby

Trả lời

17

Giải quyết nó như thế này:

window.location=document.getElementById('foo').href; 

Cảm ơn mọi người đã trả lời.

+0

Tuyệt vời !! Cảm ơn. –

0

Điều này có phù hợp với kịch bản của bạn không?

<script type="text/javascript"> 
    function somescript() { 
    document.getElementById('ololo').click();//fake a click on the link 
    } 
</script> 
+2

Điều này sẽ không hoạt động trong Firefox. – SLaks

+0

Nó không hoạt động. Có thể một trang web cấm hành động này không? – Gurzo

+0

Ah, được chú ý độc đáo ... được sử dụng để làm việc (và vẫn còn trong IE) – scunliffe

4
<script type="text/javascript"> 
    function somescript() { 
     eval(document.getElementById('ololo').getAttribute('href').replace('javascript:', '')); 
    } 
</script> 

tôi có thể thấy các hộp cảnh báo ..

Xin lưu ý rằng điều này sẽ chỉ làm việc khi mã javascript của nó vào thuộc tính href ...

+0

Nếu bạn muốn giả mạo nhấp chuột vào liên kết thay vào đó, có ví dụ ở đây ... có vẻ như rất nhiều công việc không có thư viện của bên thứ 3: http://groups.google.com/group/comp.lang.javascript/browse_thread/thread/27e7c70e51ff8a99/98cea9cdf065a524% 2398cea9cdf065a524? pli = 1 –

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