论坛's Archiver

小囧 发表于 2009-6-28 17:10

求修改文本框大小的UC脚本。

重装系统。按错键,什么都没了!悲剧啊!:tk_33
花了两天时间。:tk_17差不多找回原来firefox的感觉咯。
就差那个UC脚本没找到...:tk_09不想用GM脚本...
各位有收藏的大大,赐给我一份吧。:tk_25

cotangent 发表于 2009-6-28 18:17

/* :::::::: Textarea Sizers (cf. Resizable Textarea) ::::::::::::::: */

(function(aFunction) {
    getBrowser().addEventListener("DOMContentLoaded", function(aEvent) {
        var doc = new XPCNativeWrapper(aEvent.originalTarget);
        var sandbox = new Components.utils.Sandbox(doc);
        sandbox.document = doc;
        sandbox.__proto__ = sandbox.window = doc.defaultView;
        Components.utils.evalInSandbox("(" + aFunction + ")();", sandbox);
    }, true);
})(function() {

var TAs = document.getElementsByTagName("textarea"), sizers = [];
if (TAs.length == 0)
{
    return;
}

function getPosition(aEl)
{
    var x = 0, y = 0;
    do
    {
        x += aEl.offsetLeft;
        y += aEl.offsetTop;
    } while ((aEl = aEl.offsetParent));
   
    return { x: x, y: y };
}

function moveSizers()
{
    for (var i = 0; i < TAs.length; i++)
    {
        var pos = getPosition(TAs[i]);
        sizers[i].style.left = pos.x + TAs[i].offsetWidth - 9 + "px";
        sizers[i].style.top = pos.y + TAs[i].offsetHeight - 9 + "px";
    }
}

function resizeTA(aEvent)
{
    var pos = getPosition(TAs.cur);
    TAs.cur.style.width = aEvent.pageX - pos.x + 2 + "px";
    TAs.cur.style.height = aEvent.pageY - pos.y + 2 + "px";
    moveSizers();
}

function activate(aEvent)
{
    TAs.cur = TAs[aEvent.target.getAttribute("sizer_id")];
    window.addEventListener("mousemove", resizeTA, true);
    window.addEventListener("mouseup", function() {
        window.removeEventListener("mousemove", resizeTA, true);
        window.removeEventListener("mouseup", arguments.callee, true);
        TAs.cur = null;
    }, true);
}

for (var i = 0; i < TAs.length; i++)
{
    var sizer = document.createElement("div");
   
    sizer.setAttribute("style", "position: absolute; width: 9px; height: 9px; cursor: se-resize; background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJBAMAAAASvxsjAAAAMFBMVEUAAAClrLL///8AAHysAEDtAAASAKgAAABoAejSADoXABgAAABwxADS7gAXEgAAAABPMfbeAAAAEHRSTlP//wD/////////////////8qlaxQAAACxJREFUeJxjUFJSUlRgAJKCIFJRAEQKMgJJRQGQiCAjUATIBIoAmWA1SkoKAIMUBJBzZA0oAAAAAElFTkSuQmCC);");
    sizer.setAttribute("sizer_id", i);
    sizer.addEventListener("mousedown", activate, true);
   
    sizers.push(document.documentElement.appendChild(sizer));
}
moveSizers();

window.addEventListener("load", moveSizers, true);
window.addEventListener("resize", moveSizers, true);
window.addEventListener("beforeunload", function() {
    window.removeEventListener("load", moveSizers, true);
    window.removeEventListener("resize", moveSizers, true);
    window.removeEventListener("beforeunload", arguments.callee, false);
}, false);

});

小囧 发表于 2009-6-29 00:24

谢谢Ls!:tk_12

页: [1]

© 2004-2009 Mozest.com