2010-02-15 27 views
13

Về cơ bản tôi đang cố gắng đểĐang tải trang và thực hiện JS trên trang ... từ bookmarklet JS?

  1. điều hướng đến một trang web
  2. chờ đợi cho trang web đó để tải
  3. thực hiện một chức năng JS/cảnh báo/bất cứ điều gì trên trang đó

tất cả từ một dấu trang đơn. Điều này có thể không? Tôi dường như không thể làm việc cho tôi, nhưng đó có thể là do những thất bại cá nhân của tôi ở đây.

Trả lời

3

Bạn muốn cài đặt tiện ích mở rộng Greasemonkey cho Firefox. (Hoặc gm4ie cho IE, hoặc greasemetal for Chrome (PersonalizedWeb cũng hoạt động theo một cách đơn giản hơn nhiều cho Chrome), greasekit cho Safari, hoặc user.js cho Opera)

Greasemonkey cho phép bạn làm chính xác này ... chạy một kịch bản tự động trên mỗi lần tải trang (bạn có thể chọn trang/trang web nào tải)

Nếu không, bạn sẽ cần phải nhấp vào bookmarklet của bạn trên mỗi lần tải trang để chạy tập lệnh của bạn.

+2

Vì vậy, Greasemonkey (hoặc tương đương trong $ trình duyệt) là giải pháp duy nhất cho điều này? Mục tiêu của tôi là tạo một bookmarklet mà tôi có thể chia sẻ với những người khác, thay vì yêu cầu một add-on trong mỗi trường hợp. Đối với một số bối cảnh, vấn đề tôi cố gắng làm việc xung quanh là trang web của trường tôi. Các nhà thiết kế web nghĩ rằng nó sẽ là một ý tưởng tuyệt vời để làm cho tất cả các liên kết trên trang web chỉ JS liên kết mà thông qua một số kết hợp khó hiểu của PHP và AJAX cập nhật trang web. Thật không may, vì cách họ đã làm điều này nó hiện không thể liên kết đến, nói, trang bài tập về nhà của lớp học của bạn. – scikidus

+2

Thay vào đó bạn phải nói "Truy cập trang web, sau đó nhấp vào đây, sau đó nhấp vào đây, sau đó nhấp vào đây". Hy vọng của tôi là tạo một bookmarklet sẽ tải trang web và một khi trang được tải chạy các liên kết JS cần thiết để truy xuất trang mong muốn. – scikidus

+0

Ah, @ scikidus Tôi thấy ... rất tiếc là có vẻ như trang web nằm ngoài tầm kiểm soát của bạn. Bạn có thể tạo/sử dụng một bookmarklet, nhưng không có cách nào để kích hoạt nó để chạy tự động (không) sử dụng giải pháp Greasemonkey. Có cơ hội bạn có thể nói chuyện với nhân viên tại trường của bạn để cung cấp một sửa chữa cho trang web? Đối với các nhà phát triển ban đầu (-1 cho các liên kết chỉ JS) – scunliffe

1

Vì không có giải pháp nào tốt hơn, tôi nghĩ tôi sẽ tung ra rằng Opera tự nhiên hỗ trợ các tập lệnh người dùng để chạy trên mọi tải trang. Từ đó, bạn có thể có tập lệnh kiểm tra url hiện tại và chạy nếu trên trang thích hợp.

See here for documentation

6

Cách đơn giản nhất tôi tìm thấy để làm điều này mà không cần Greasemonkey hoặc một cái gì đó tương tự là viết JS của bạn để nó kiểm tra để xem nếu nó là trên trang thích hợp, và đi ở đó nếu nó không phải là . Nếu nó là trên trang, sau đó nó thực hiện các JS/cảnh báo/bất cứ điều gì. Bạn phải sử dụng bookmarklet hai lần, nhưng bạn chỉ cần một bookmarklet, và nó vẫn có thể nhanh hơn/dễ dàng hơn khi người dùng thực hiện việc click/bất cứ điều gì. Vì vậy, mã sẽ trông như thế này:

if(this.document.location.href != "[url]") { //Are we on the page yet? 
    this.document.location.href = "[url]"; // If not, go there 
} 
else { 
    if (document.readyState === "complete") { //Wait for the page to finish loading 
    // DO STUFF 
    } 
} 
Các vấn đề liên quan