可否开放一下动作编辑?

使用问题 · 12 次浏览
原++ 创建于 21小时8分钟前

自己也搞了一个类似功能的在线查看,但是没有返回网址的功能,想改下你的动作,仅作为个人使用,谢谢。

(async function() {
    try {
        const zp = Zotero.getActiveZoteroPane();
        const items = zp.getSelectedItems();
        
        // 验证选中条目
        if (!items.length) throw new Error("请先选中文献条目");
        const item = items[0];
        
        // 三级地址探测策略
        const onlineSources = [
            // 1. 直接URL字段
            item.getField('url'),
            // 2. DOI转换链接
            item.getField('DOI') ? `https://doi.org/${item.getField('DOI')}` : null,
            // 3. 附件在线地址
            ...item.getAttachments().map(id => {
                const att = Zotero.Items.get(id);
                return att?.getField('url') || att?.attachmentUrl;
            })
        ].filter(url => url && /^https?:\/\//i.test(url));

        // 执行在线查看
        if (onlineSources.length > 0) {
            // 优先使用条目URL
            const targetURL = onlineSources[0];
            
            // 方案A:浏览器打开
            Zotero.launchURL(targetURL);
            
            // 方案B:内置阅读器打开(需Zotero 7+)
            // await Zotero.Reader.openURL(targetURL);
            
            return `正在打开:${targetURL}`;
        }
        
        throw new Error("未找到可在线访问的资源");

    } catch(e) {
        Zotero.logError(e);
        return "操作失败:" + e.message;
    }
})();


十二猫主 19小时15分钟前 :

你好,由于zotero的版本差异,该动作在此之前应该对大多数用户都不可用,个人也不打算维护了,但由于做了很多适配工作,不太愿意开放编辑。

收到你的反馈之后,我尝试完善你的需求,现在已经对大多数用户可用了,但是因为时间有限,没有彻底解决无法正确获取到openurl的问题,本人也很少用这个。

考虑到openurl可能是你比较重视的内容,我已开放编辑权限,祝一切顺利!

回复内容
暂无回复
回复主贴