Greasy Fork

Greasy Fork is available in English.

饭否-手机版输入框字数限制提醒

m.fanfou.com 上在 消息/私信框 中输入时实时显示剩余字数限制(Presto-based Opera Classic for Android不能完整实现此功能, 必须让焦点离开输入框才能更新字数提醒); 发送超过140字的消息时弹出确认框.

当前为 2014-06-16 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name 饭否-手机版输入框字数限制提醒
// @author HackMyBrain
// @version 1.0.1
// @description m.fanfou.com 上在 消息/私信框 中输入时实时显示剩余字数限制(Presto-based Opera Classic for Android不能完整实现此功能, 必须让焦点离开输入框才能更新字数提醒); 发送超过140字的消息时弹出确认框.
// @include http://m.fanfou.com/*
// @namespace http://greasyfork.icu/users/2844
// ==/UserScript==


(function(){

    var textarea = document.getElementsByTagName('textarea')[0];
    if ( ! textarea ) return;
    
    var form = document.getElementsByTagName('form')[0];
    var elem_show_len = document.createElement('p');
    elem_show_len.style.display = 'inline !important';
    elem_show_len.innerHTML = '允许继续输入字数: ';
    
    var len;
    
    function showLength() {
        if ( len == textarea.value.length ) {
            return;
        } else {
            len = textarea.value.length;
            if ( /\d+/.test(elem_show_len.innerHTML) ) {
                elem_show_len.innerHTML = elem_show_len.innerHTML.replace(/-?\d+/, 140 - len);           
            } else {
                elem_show_len.innerHTML += 140 - len;                
            }
            if ( len > 140 ) {
                elem_show_len.style.color = 'red';
            } else {
                elem_show_len.style.color = null;
            }
        }
    }

    form.appendChild(elem_show_len);
    
    textarea.addEventListener('input', showLength, false);
    
    form.addEventListener('submit', function(e){
        if (textarea.value.length > 140) {
            showLength();
            if ( ! confirm('消息字数已超过140,是否仍要发送?') ) {
                e.preventDefault();
                e.stopPropagation();
            }
        }
    }, false);
    
    setTimeout(function(){
        showLength();  
    }, 500);

})();