云图书馆统一书号普通编目套录MARC信息脚本

实现统一书号部分书籍的MARC快捷编目(普通编目)

目前為 2021-04-14 提交的版本,檢視 最新版本

// ==UserScript==
// @name         云图书馆统一书号普通编目套录MARC信息脚本
// @namespace    aaatk
// @version      0.1.0
// @description  实现统一书号部分书籍的MARC快捷编目(普通编目)
// @author       赵巍
// @match        https://b.ytsg.com/*
// @run-at       document-end
// @grant        GM_setClipboard
// ==/UserScript==

//isbn号
//function str_010a(marc) {
//    var p1 = "010    |a";
//    var p2 = "|d";
//    var a = marc.indexOf(p1);
//    var b = marc.indexOf(p2, a);
//    var t = p1.length;
//    var c = marc.substring(a+t,b);
//    var d = marc.slice(a+t,b);
//    return d;
//    // 该函数返回isbn号
//}
//010定价
//function str_010d(marc) {
//    var p1 = "010    |a";
//    var p2 = " 1";
//    var a = marc.indexOf(p1);
//    var b = marc.indexOf(p2, a);
//    var t = p1.length;
//    var c = marc.substring(a+t,b);
//    var d = marc.slice(a+t,b);
//    //子marc
//    var p3 = "|d";
//    //var p4 = "";
//    var a1 = d.indexOf(p3);
//    //var b1 = d.indexOf(p4, a1);
//    var t1 = p3.length;

//    var c1 = d.substring(a1+t1);
//    //var d1 = d.slice(a1+t1,b1);
//    c1 = c1.replace('CNY', '')
//    return c1;
//    // 该函数返回010定价
//}
function marc_010(marc) {
    var p1 = "010    ";
    var p2 = " 1"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    if (a<0){//如果没有找到010则返还空值
        c="";
    } else {return c;}
    // 该函数返回010
}
function marc_091(marc) {
    var p1 = "091    ";
    var p2 = " 100"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    if (a<0){//如果没有找到091则返还空值
        c="";
    } else {return c;}

    // 该函数返回091
}
function marc_200(marc) {
    var p1 = "200 1  ";
    var p2 = " 21"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    return c;
    // 该函数返回200
}
function marc_210(marc) {
    var p1 = "210    ";
    var p2 = " 2"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    return c;
    // 该函数返回210
}
function marc_225(marc) {//丛书
    var p1 = "225 2  ";
    var p2 = "690"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    //if (b<0){//没找到结尾

    // }
    var t = p1.length;
    var c = marc.slice(a+t,b);
    if (a<0){//如果没有找到225则返还空值
        c="";
    } else {return c;}
    // 该函数返回225
}
function marc_690a(marc) {
    var p1 = "690    |a";
    var p2 = "|v"
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    return c;
    // 该函数返回690a
}
/////////////////////////////////////////////
//010定价
function str_010d(marc) {
    var p1 = "|d";
    var p2 = " ";
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    var d = marc.slice(a+t,b);
    d = d.replace('CNY', '')
    return d;
    // 该函数返回010定价
}
//091定价
function str_091d(marc) {
    var p1 = "|d";
    var a = marc.indexOf(p1);
    if (a<0){//if不存在091d
        c="";}else{//存在
            var t = p1.length;
            var c = marc.substring(a+t);
            c = c.replace('CNY', '')
        }
    return c;
    // 该函数返回091定价
}

//题名
function str_200_1a(marc) {
    var p1 = "200 1  \|a";
    var p2 = "|9";
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    var d = marc.slice(a+t,b);
    return d;
    // 该函数返回题名
}
//第一责任者
function str_200_1f(marc) {
    var p1 = "200 1  \|a";
    var p2 = " 210";
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    var d = marc.slice(a+t,b);
    //子marc
    var p3 = "|f";
    var p4 = "|g";
    var a1 = d.indexOf(p3);
    var b1 = d.indexOf(p4, a1);
    var t1 = p3.length;

    var c1 = d.substring(a1+t1,b1);
    var d1 = d.slice(a1+t1,b1);
    d1 = d1.replace('主编', '');
    d1 = d1.replace('编选', '');
    d1 = d1.replace('编', '');
    d1 = d1.replace('著', '');
    d1 = d1.replace('译', '');
    return d1;
    // 该函数返回第一责任者
}
//出版社
function str_210c(marc) {
    var p1 = "210    \|a";
    var p2 = " 2";
    var a = marc.indexOf(p1);
    var b = marc.indexOf(p2, a);
    var t = p1.length;
    var c = marc.substring(a+t,b);
    var d = marc.slice(a+t,b);
    //子marc
    var p3 = "|c";
    var p4 = "|d";
    var a1 = d.indexOf(p3);
    var b1 = d.indexOf(p4, a1);
    var t1 = p3.length;

    var c1 = d.substring(a1+t1,b1);
    var d1 = d.slice(a1+t1,b1);
    return d1;
    // 该函数返回出版社
}
//出版年
function str_210d(marc) {
    var p1 = "|d";
    var a = marc.indexOf(p1);
    var t = p1.length;
    var c = marc.substring(a+t);
    return c;
    // 该函数返回出版年
}




(function() {
    'use strict';
    //模拟按下回车键
    //
    //$(".footer").hide();//隐藏页脚div,厂家广告
    $(".footer").remove();//删除页脚div,厂家广告
    var jqueryScriptBlock = document.createElement('style');
    jqueryScriptBlock.type = 'text/css';
    jqueryScriptBlock.innerHTML = "#readmarc{position:fixed;top:21%;left:20px;border:1px solid gray;padding:3px;width:120px;font-size:12px;cursor:pointer;border-radius: 3px;}#marc{position:fixed;top:15%;left:20px;border:1px solid gray;padding:3px;width:125px;height:40px;font-size:14px;cursor:pointer;border-radius: 3px;}";
    document.getElementsByTagName('head')[0].appendChild(jqueryScriptBlock);
    console.log('我的脚本加载了');
    $(document.body).append("<input id='marc' type='text' autocomplete='off' spellcheck='false' class='ime'>");
    $(document.body).append("<input id='readmarc' type='button' value='解析MARC' class='btn'>");
    var marc
    $('#readmarc').click(function () {
        var mode=$(".ISBN dt:first").text();
        if (mode=="*书号" && $(".titleName").text()=="普通编目") {//仅在非标准图书的普通编目开启
            //
            //
            marc=document.getElementById("marc").value;

            //$(".price input:first").val(str_091d(marc));
            //$(".zhengtiming input:first").attr("title",str_200_1a(marc));
            //$(".zhengtiming label:first").attr("style","display: none;");
            //题名;触发v-mode更新
            $(".zhengtiming input:first").val(str_200_1a(marc));$(".zhengtiming input:first")[0].dispatchEvent(new Event('input'));
            //第一责任者;触发v-mode更新
            $(".firstDuty input:first").val(str_200_1f(marc));$(".firstDuty input:first")[0].dispatchEvent(new Event('input'));
            //出版社;触发v-mode更新
            $(".public input:first").val(str_210c(marc));$(".public input:first")[0].dispatchEvent(new Event('input'));
            $(".year input:first").val(str_210d(marc_210(marc)));$(".year input:first")[0].dispatchEvent(new Event('input'));
            //清空marc文本框
            document.getElementById("marc").value="";
            //$(".zhengtiming input:first").focus();
            //
            //读取marc时调试信息
            if (marc_091(marc)==null ){//如果不存在091,则显示010
                console.log("010:"+marc_010(marc));
                console.log("200:"+marc_200(marc));
                console.log("210:"+marc_210(marc));
                console.log("225:"+marc_225(marc));
                console.log("690a:"+marc_690a(marc));
            }else{//如果存在091,显示091
                console.log("010:"+marc_010(marc));
                console.log("091:"+marc_091(marc));
                if (str_091d(marc_091(marc))!=""){
                    console.log("091定价:"+str_091d(marc_091(marc)));
                }else{
                    console.log("010定价:"+str_010d(marc_010(marc)));
                }
                console.log("200:"+marc_200(marc));
                console.log("200题名:"+marc_200(marc));
                console.log("210:"+marc_210(marc));
                console.log("225:"+marc_225(marc));
                console.log("690a:"+marc_690a(marc));
            }
            //结束
        }else{//不是普通编目的非标准图书页面执行以下内容
            //
            //
            document.getElementById("marc").value="";
            alert("当前页面不是“普通编目-非标准图书”");
        };
        //解析marc按钮执行结束
    });
    //
    //


    //执行时调试信息
    console.log($(".titleName").text())
})();


QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址