无聊的时候,经常会在知乎看一些精彩的回答,如果回答太长,就懒得自己看,一般会选中文字然后 Option+ESC
用 OSX 自带的文本转语音工具来进行朗读,但自从知乎启用了版权说明后,复制时会在复制的文本前添加一些版权信息,OSX 的朗读功能应该是调用的复制功能,所以每次都要把版权信息读很久,极不方便。
说实话这功能真的防君子不防小人,我不晓得自己是君子还是小人,但这个功能真的妨碍到我了,所以我决定干掉它 😈
Google 一番就知道这个功能是如何实现的了,利用的是 copy 事件,要注销掉这个事情不太容易,但要避开它却很简单,阻止冒泡就好了。
知乎的这个事件是绑定在回答区域的,那么在回答的子元素上捕获 copy 事件,然后阻止向上冒泡就可以了,这里我用了 jquery,因为我比较懒。
$('.zm-editable-content').on('copy', function(evt) {
evt.stopPropagation();
});
像上面这样,捕获到这个事件不作任何处理,仅阻止冒泡,就可以避开。
完整的代码
// ==UserScript==
// @name 禁用知乎版权信息
// @namespace http://g2w.me/
// @version 0.1
// @description 彬知乎版权信息
// @author greatghoul
// @match https://www.zhihu.com/*
// @grant unsafeWindow
// @require http://cdn.bootcss.com/jquery/1.12.0/jquery.min.js
// ==/UserScript==
/* jshint -W097 */
'use strict';
$('.zm-editable-content').on('copy', function(evt) {
evt.stopPropagation();
});
在 Chrome 中,可以使用 Tampermonkey 来管理 userscripts,我也仅仅在这个平台上测试过。