Situs yang menambahkan hal-hal "Baca lebih lanjut" yang mengganggu adalah ShareThis.
Untuk mencegah perilaku buruk ini, Anda memiliki tiga alternatif:
Nonaktifkan acara clipboard
Situs web ini menggunakan API Clipboard , yang memungkinkan pengembang web untuk mencegat tindakan salin / potong / rekat dan menjalankan beberapa kode saat dilakukan. Beginilah cara ShareThis (dan situs web lain seperti itu) bekerja. Itu hanya menunggu acara salin dan tepat sebelum salinan efektif dilakukan itu menambahkan "lapisan" teks tambahan yang berisi "- Lihat ...".
Sekarang pertanyaannya adalah: adakah metode untuk menonaktifkan acara clipboard? Sayangnya, saya belum dapat menemukan metode untuk melakukan ini di Chrome / Chromium, tetapi di Firefox dimungkinkan dengan dua cara berbeda.
- Masuk
about:config
dan cari dom.event.clipboardevents.enabled
. Klik dua kali pada tombol (atur ke false
) dan voila! Anda telah menonaktifkan acara clipboard dan tidak ada yang akan menyentuh clipboard Anda lagi.
- Untuk versi Firefox yang lebih lama (benar-benar lebih tua), ada ekstensi ini yang melakukan hal yang sama dari
about:config
opsi.
Menonaktifkan acara clipboard tidak boleh merusak pengalaman situs web mana pun karena jarang digunakan dan sebenarnya tidak ada tujuan untuk menggunakannya (selain spam).
Mari kita menuju solusi kedua.
Blokir Ini
Jika Anda tidak perlu ShareThis, Anda cukup memblokir w.sharethis.com
domain. Javascript yang bertanggung jawab untuk memuat ShareThis (dan mendaftar ClipboardEvent
) dimuat dari situs web itu.
Anda dapat memblokirnya dengan berbagai cara, mulai dari filter AdBlock sederhana hingga mengedit file host Anda (ini tidak tercakup atau ditautkan di sini karena saya tidak dapat menempatkan lebih banyak tautan karena reputasi saya).
Contoh melakukannya melalui hosts
file:
127.0.0.1 w.sharethis.com
Solusi ketiga adalah yang paling sulit dan harus digunakan hanya sebagai upaya terakhir.
Nonaktifkan fitur pemilihan pada situs web yang bermasalah
Untuk mengedit konten yang disalin ke clipboard, situs web ini menggunakan Selection
API yang memungkinkan mereka untuk mengedit pilihan saat itu juga. Jadi, solusinya adalah sepenuhnya menonaktifkan segala jenis Selection
(pada sisi kode, jelas. Anda masih dapat melakukan pilihan).
Ini dapat dilakukan dengan skrip Tampermonkey / Greasemonkey sederhana. Saya mengujinya hanya di Firefox karena saya tidak dapat menginstal Chrome sekarang. Saya minta maaf untuk itu.
Ini adalah kode sumber:
// ==UserScript==
// @name Goodbye selections
// @namespace tag: utils
// @include $put_here_a_website_you'd_like_to_disable_selections$
// @include $more_websites$
// @version 1
// @grant none
// ==/UserScript==
(function() {
var disableSelections = function() {
document.getSelection = window.getSelection = function() {
return { isCollapsed: true };
};
};
var script = document.createElement ("script");
script.appendChild (document.createTextNode ("(" + disableSelections + ")();"));
(document.body || document.head || document.documentElement).appendChild (script);
})();
Agar ini berfungsi, Anda harus membuat skrip Greasemonkey / Tampermonkey baru dan menyesuaikan @include
arahan. Anda dapat menempatkan satu situs web per baris, dan itu harus dilakukan seperti @include http://bad.website.address/
.
Saya mengujinya dengan kedua situs web yang telah Anda tautkan dan berfungsi tanpa masalah. Namun, perlu diingat bahwa ini dapat menyebabkan masalah karena Selection
s digunakan oleh situs web yang sangat sah (misalnya, kotak teks StackExchange menggunakannya untuk menyisipkan simbol, ketika Anda mengklik tombol, ke posisi caret Anda), jadi Anda harus mengaktifkan userscript hanya di situs web yang bermasalah.
(perhatikan bahwa Anda mungkin perlu menghapus baris yang dimulai dengan //
jika Anda membuat skrip pengguna dari menu Greasemonkey / Tampermonkey, mereka akan secara otomatis menambahkannya)
Penjelasan skrip pengguna cukup sederhana. Pertama, ia mendefinisikan fungsi disableSelections
yang menggantikan default document.getSelection
dan window.getSelection
fungsi dengan yang hanya mengembalikan objek yang mengandung { isCollapsed: true }
. Mengapa? Karena ShareThis (saya memeriksa dalam kode JS mereka) memanggil fungsi itu dan memeriksa apakah isCollapsed
properti diatur ke true
(jika ya, itu menghentikan "keracunan clipboard"). Situs web lain seperti itu mungkin tidak akan melakukan pemeriksaan itu, tetapi mereka akan berakhir hanya dengan kesalahan ketika mereka mencoba memanggil fungsi sah Selection
objek.
Kemudian fungsi tersebut disuntikkan dalam tubuh / header / dokumen dan itu akan dieksekusi secara otomatis. Sebuah pertanyaan yang mungkin Anda tanyakan adalah: jika Javascript memungkinkan untuk menimpa (hampir) setiap fungsi, mengapa Anda tidak mengesampingkan addEventListener
fungsi tersebut untuk tidak melakukan apa-apa saat acara tersebut disalin / dipotong / direkatkan? Jawabannya cukup sederhana. Script pengguna dijalankan pada waktu yang tidak mudah diprediksi, ini berarti bahwa Javascript ShareThis dapat dimuat sebelum skrip pengguna, dan itu tidak akan melakukan apa pun. Sebagai gantinya, dengan hanya mengesampingkan window.getSelection
fungsi tidak akan ada masalah karena fungsi itu dipanggil hanya ketika salinan dilakukan, dan kami 100% yakin bahwa ketika Anda menyalin teks, skrip users telah dimuat.
Kesimpulan
Solusi terbaik dan terbersih jelas yang pertama, karena menonaktifkan API yang praktis tidak berguna.
Yang kedua juga valid, tetapi Anda akan kehilangan salah satu fungsi ShareThis ini.
Yang ketiga adalah yang paling "retas", tetapi sebagai upaya terakhir itu bisa berhasil.
Tindakan najis ini dapat diblokir di Chrome dengan ekstensi "Kill Evil":
https://chrome.google.com/webstore/detail/kill-evil/epieehnpcepgfiildhdklacomihpoldk
(EDIT) Ekstensi ini tampaknya menyebabkan masalah aneh di facebook, pastikan untuk memasukkannya ke daftar putih.
sumber
Meskipun ini adalah addon Firefox, NoScript memungkinkan Anda untuk memblokir JavaScript dari situs web mana pun dengan mengatur daftar yang tidak terpercaya.
sumber
Jika Anda mencari cara untuk memodifikasi HTML secara otomatis sebelum ditampilkan, maka Greasemonkey adalah alatnya, dan Anda perlu membuat skrip pengguna yang melakukan modifikasi.
Dari artikel Panduan Pemula untuk Script Greasemonkey di Google Chrome :
Ada banyak informasi tentang Greasemonkey yang dapat ditemukan di Internet, termasuk banyak tutorial. Kebanyakan dari mereka adalah untuk Firefox, tempat Greasemonkey berasal, tetapi mereka juga berlaku hari ini untuk Chrome.
Sebagai situs yang bertanggung jawab untuk "Baca lebih lanjut" adalah
sharethis.com
. Jika Anda memblokirnya, ini harus berhenti. Jika Anda memiliki suite keamanan yang diinstal, gunakan untuk memblokir situs. Kalau tidak, Anda dapat memblokirnya menggunakan file host Anda .sharethis.com
adalah penyedia yang memasok Tynt ke dua situs web yang Anda berikan kepada saya. Tynt tampaknya lebih merupakan teknologi daripada situs web, jadi tentu saja mungkin ada penyedia lain, Tapi kita harus berharap bahwa mereka akan agak jarang.sumber
Di Chromium saya berhasil dengan ekstensi Klik & Salin Absolute Aktifkan .
Setelah menginstalnya, Anda dapat menambahkan daftar situs pengguna tempat ekstensi diaktifkan di preferensi. Atau, ketika Anda berada di halaman tertentu dan melihat bahwa itu merusak clipboard Anda, Anda dapat mengaktifkan ekstensi ini dengan cepat melalui tombol bilah alat (ini secara otomatis menambahkan situs ke daftar Anda).
sumber
Atau, gunakan ekstensi "Salin sebagai Teks Biasa" untuk Chrome. Anda kemudian memiliki opsi tambahan dalam menu selain penyalinan normal. Ini memiliki kelebihan yang berfungsi di Chrome dan tidak merusak apa pun. https://chrome.google.com/webstore/detail/copy-as-plain-text-amazin/mkkcgjeddgdnikkeoinjgbocghokolck?utm_source=chrome-app-launcher-info-dialog
sumber