Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将此特定bookmarklet转换为greasemonkey脚本_Javascript_Sorting_Greasemonkey - Fatal编程技术网

Javascript 如何将此特定bookmarklet转换为greasemonkey脚本

Javascript 如何将此特定bookmarklet转换为greasemonkey脚本,javascript,sorting,greasemonkey,Javascript,Sorting,Greasemonkey,我几乎没有编码经验,我想看看是否有人能帮我将此bookmarklet转换为greasemonkey格式: javascript: function toArray(c) { var a, k; a = new Array; for (k = 0; k < c.length; ++k) a[k] = c[k]; return a; } function insAtTop(par, child) { if (par.childNodes.length)

我几乎没有编码经验,我想看看是否有人能帮我将此bookmarklet转换为greasemonkey格式:

javascript: function toArray(c) {
    var a, k;
    a = new Array;
    for (k = 0; k < c.length; ++k) a[k] = c[k];
    return a;
}

function insAtTop(par, child) {
    if (par.childNodes.length) par.insertBefore(child, par.childNodes[0]);
    else par.appendChild(child);
}

function countCols(tab) {
    var nCols, i;
    nCols = 0;
    for (i = 0; i < tab.rows.length; ++i)
        if (tab.rows[i].cells.length > nCols) nCols = tab.rows[i].cells.length;
    return nCols;
}

function makeHeaderLink(tableNo, colNo, ord) {
    var link;
    link = document.createElement('a');
    link.href = 'javascript:sortTable(' + tableNo + ',' + colNo + ',' + ord + ');';
    link.appendChild(document.createTextNode((ord > 0) ? 'a' : 'd'));
    return link;
}

function makeHeader(tableNo, nCols) {
    var header, headerCell, i;
    header = document.createElement('tr');
    for (i = 0; i < nCols; ++i) {
        headerCell = document.createElement('td');
        headerCell.appendChild(makeHeaderLink(tableNo, i, 1));
        headerCell.appendChild(document.createTextNode('/'));
        headerCell.appendChild(makeHeaderLink(tableNo, i, -1));
        header.appendChild(headerCell);
    }
    return header;
}
g_tables = toArray(document.getElementsByTagName('table'));
if (!g_tables.length) alert("This page doesn't contain any tables.");
(function() {
    var j, thead;
    for (j = 0; j < g_tables.length; ++j) {
        thead = g_tables[j].createTHead();
        insAtTop(thead, makeHeader(j, countCols(g_tables[j])))
    }
})();

function compareRows(a, b) {
    if (a.sortKey == b.sortKey) return 0;
    return (a.sortKey < b.sortKey) ? g_order : -g_order;
}

function sortTable(tableNo, colNo, ord) {
    var table, rows, nR, bs, i, j, temp;
    g_order = ord;
    g_colNo = colNo;
    table = g_tables[tableNo];
    rows = new Array();
    nR = 0;
    bs = table.tBodies;
    for (i = 0; i < bs.length; ++i)
        for (j = 0; j < bs[i].rows.length; ++j) {
            rows[nR] = bs[i].rows[j];
            temp = rows[nR].cells[g_colNo];
            if (temp) rows[nR].sortKey = temp.innerHTML;
            else rows[nR].sortKey = "";
            ++nR;
        }
    rows.sort(compareRows);
    for (i = 0; i < rows.length; ++i) insAtTop(table.tBodies[0], rows[i]);
}
javascript:functiontoarray(c){
var a,k;
a=新阵列;
对于(k=0;knCols)nCols=tab.rows[i].cells.length;
返回NCOL;
}
函数makeHeaderLink(表号、列号、ord){
var-link;
link=document.createElement('a');
link.href='javascript:sortTable('+tableNo+'、'+colNo+'、'+ord+');';
link.appendChild(document.createTextNode((ord>0)?'a':'d');
返回链接;
}
函数makeHeader(表号,nCols){
var表头,表头,i;
header=document.createElement('tr');
对于(i=0;i
当我从书签触发它时,它运行得非常好,我也尝试过这个网站上列出的各种解决方案,但即使在greasemonkey中启用了它,它也不会自动触发! 我尝试了解码方法,并尝试在代码前面加上onload。对不起,我真的不知道如何编码。。
提前谢谢

您的bookmarklet已编码,因此它将具有无效的javascript标记,您需要首先使用联机工具或javascript控制台中的
decodeURIComponent
函数对其进行解码

一旦完成,你可以使用任何美化网站美化和使用在GreaseMonkey


希望有帮助

它是Url编码的。您需要对其进行解码,这样就可以使用常规Javascript。而且它是不完整的。不管怎样,这里-我尝试从bookmarklet属性复制粘贴代码,但它没有正确显示,我使用了解码器,我还需要做什么?我不使用Greasemonkey,但使用Tampermonkey,我将脚本设置为在页面加载时运行,我只会将上面的内容粘贴到其中(从开头删除
javascript:
)。