Saya mencoba meletakkan garis ini tetapi tidak berhasil:
// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js
jQuery sama sekali tidak bekerja di Greasemonkey. Apakah ada cara lain untuk menggunakan jQuery di Greasemonkey?
-
Untuk semua orang yang memiliki masalah yang sama, Anda harus mengunggah file ke greasespot kemudian menginstalnya dari sana.
Opsi Buat Skrip Baru tidak akan berfungsi!
jquery
greasemonkey
Keira
sumber
sumber
$(document).ready(function() {...});
kode Anda@requires
adalah menambahkan hash atau querystring di akhir@require
pernyataan, dan mengubahnya kapan pun perlu diperbarui. Mirip dengan cara Anda akan "cachebust" favicon.// @require http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js?v=changeme
Jawaban:
Mungkin Anda tidak memiliki versi Greasemonkey yang cukup baru. Itu versi 0.8 yang ditambahkan
@require
.Jika Anda tidak memiliki 0,8, gunakan teknik yang dijelaskan Joan Piedra untuk menambahkan
script
elemen secara manual ke halaman .Antara versi 0.8 dan 0.9,
@require
yang hanya diproses ketika script pertama kali diinstal. Jika Anda mengubah daftar skrip yang diperlukan, Anda perlu mencopot skrip Anda dan menginstalnya kembali; Greasemonkey mengunduh skrip yang diperlukan satu kali pada saat instalasi dan menggunakan salinan cache setelahnya.Pada 0,9, perilaku Greasemonkey telah berubah (ke alamat masalah yang berhubungan secara tangensial ) sehingga sekarang memuat skrip yang diperlukan setelah setiap pengeditan; menginstal ulang skrip tidak lagi diperlukan.
sumber
@require
arahan baru , Anda harus mencopot dan menginstal ulang skrip agar diberlakukan.Jika Anda ingin menggunakan jQuery di situs yang sudah termasuk, ini adalah caranya (terinspirasi oleh BrunoLM):
Saya tahu ini bukan maksud asli dari pertanyaan, tetapi semakin menjadi kasus umum dan Anda tidak secara eksplisit mengecualikan kasus ini. ;)
sumber
if(typeof $ == 'undefined'){ var $ = unsafeWindow.jQuery; }
Di Chrome, situs Jquery sudah tersedia.alert($('.submit_entry').length);
adalah kesalahan keluar, dan sekaligus mengirimkan peringatan yang sesuai.Sama sekali tidak ada yang salah dengan memasukkan keseluruhan jQuery ke dalam skrip Greasemonkey Anda. Ambil saja sumbernya, dan letakkan di bagian atas skrip pengguna Anda. Tidak perlu membuat tag skrip, karena Anda sudah menjalankan JavaScript!
Pengguna hanya mengunduh skrip sekali saja, jadi ukuran skrip bukan masalah besar. Selain itu, jika Anda ingin skrip Greasemonkey Anda berfungsi di lingkungan non-GM (seperti skrip pengguna GM-esque Opera, atau Greasekit di Safari), itu akan membantu untuk tidak menggunakan konstruksi unik GM seperti @require.
sumber
Solusi Rob adalah yang tepat - gunakan
@require
dengan pustaka jQuery dan pastikan untuk menginstal ulang skrip Anda sehingga arahan akan diproses.Satu hal yang menurut saya layak untuk ditambahkan adalah bahwa Anda dapat menggunakan jQuery secara normal setelah Anda memasukkannya ke dalam skrip Anda, kecuali untuk metode AJAX . Secara default jQuery mencari XMLHttpRequest, yang tidak ada dalam konteks Greasemonkey. Saya menulis tentang solusi di mana Anda membuat pembungkus untuk GM_xmlhttpRequest (versi Greasemonkey XHR) dan menggunakan jQuery's
ajaxSetup()
untuk menentukan versi terbungkus Anda sebagai default. Setelah Anda melakukan ini, Anda dapat menggunakan$.get
dan$.post
seperti biasa.Anda juga mungkin memiliki masalah dengan jQuery
$.getJSON
karena memuat JSONP menggunakan<script>
tag. Ini mengarah ke kesalahan karena jQuery mendefinisikan fungsi panggilan balik dalam lingkup jendela Greasemonkey, dan skrip yang dimuat mencari panggilan balik dalam lingkup jendela utama. Taruhan terbaik Anda adalah menggunakan$.get
gantinya dan uraikan hasilnya denganJSON.parse()
.sumber
Anda dapat membuat skrip baru menggunakan Skrip Pengguna Baru di Greasemonkey tetapi Anda harus mengedit file config.xml di dalam folder gm_scripts.
File config.xml Anda harus memiliki sintaksis yang sama dengan ini:
Perhatikan
<Require>
tag.Dalam skrip Anda, Anda dapat menggunakan sintaks jQuery langsung. Pastikan Anda memiliki tag memerlukan di header Greasemonkey. Berikut ini adalah contoh Hello World:
Ingatlah bahwa setelah memodifikasi config.xml Anda harus me-restart browser Anda untuk Greasemonkey untuk memuat ulang pengaturan lagi.
Perhatikan juga bahwa Anda perlu menyalin file jquery.js ke folder direktori skrip Anda agar ini berfungsi. Saya menguji ini, dan itu hanya berfungsi jika Anda benar-benar menyalin file secara manual di sana.
Selamat jQuerying!
sumber
Memperbarui : Seperti komentar di bawah ini, jawaban ini sudah usang.
Seperti yang dikatakan semua orang, @require hanya dijalankan ketika skrip telah diinstal. Namun, Anda harus mencatat juga bahwa saat ini jQuery 1.4. * Tidak berfungsi dengan greasemonkey. Anda dapat melihat di sini untuk perincian: http://forum.jquery.com/topic/importing-jquery-1-4-1-into-greasemonkey-scripts-generates-an-error
Anda harus menggunakan jQuery 1.3.2 sampai semuanya berubah.
sumber
Jika Anda menggunakan chrome, Anda harus memilih alternatif karena Chromium tidak mendukung
@require
.Sumber: Proyek Chromium - Skrip pengguna
Lebih detail dan alternatif tentang Bagaimana cara menggunakan jQuery di skrip Greasemonkey di Google Chrome?
sumber
meta @require tidak berfungsi saat Anda ingin melepaskan ikatan peristiwa pada halaman web menggunakan jQuery, Anda harus menggunakan pustaka jQuery yang termasuk dalam halaman web dan kemudian mendapatkannya di Greasemonkey dengan
var $ = unsafeWindow.jQuery;
Bagaimana cara membatalkan ikatan penangan acara jquery di greasemonkey?sumber
Anda mungkin mendapatkan
Component unavailable
jika Anda mengimpor skrip jQuery secara langsung.Mungkin itu yang dibicarakan @Conley ...
Kamu bisa memakai
yang merupakan versi modifikasi untuk bekerja pada Greasemonkey, dan kemudian mendapatkan objek jQuery
sumber
@require
adalah TIDAK hanya diproses ketika script pertama kali diinstal! Pada pengamatan saya itu diproses pada waktu eksekusi pertama! Jadi, Anda dapat menginstal skrip melalui perintah Greasemonkey untuk membuat skrip baru. Satu-satunya hal yang harus Anda perhatikan adalah, bahwa tidak ada halaman yang dimuat kembali dipicu, sebelum Anda menambahkan@require
bagian. (dan simpan skrip baru ...)sumber