感谢作者,根据你提供的代码修改了JavaScript部分,实现了①zotero条目页面使用该动作可以复制条目链接,②PDF页面,未选择标注时可以复制条目链接,③选择标注内容,可以复制标注链接。以下是代码,请参考,随意选用。(本文小白,几乎无编程经验,若有问题请询问本动作作者大神)
var annotationID="";
var pdfitem=""
var myitem=""
if(Zotero_Tabs._selectedID!= 'zotero-pane'){
pdfitem = Zotero.Items.get(Zotero.Reader.getByTabID(Zotero_Tabs._selectedID).itemID)
myitem=Zotero.Items.get(pdfitem.parentItemID);
var div=Zotero.Reader.getByTabID(Zotero_Tabs._selectedID)._iframeWindow.document.querySelector('#annotations>div.annotation.selected');
if(!div){
return '<a href=zotero://select/items/_'+myitem.getField("key")+'>'+myitem.getCreators()[0].lastName+','+myitem.getField('date').substring(0,4)+'</a>';
}
annotationID=div.getAttribute("data-sidebar-annotation-id");
if(!annotationID){
return '<a href=zotero://select/items/_'+myitem.getField("key")+'>'+myitem.getCreators()[0].lastName+','+myitem.getField('date').substring(0,4)+'</a>';
}
} else {
myitem=Zotero.getActiveZoteroPane().getSelectedItems()[0];
return '<a href=zotero://select/items/_'+myitem.getField("key")+'>'+myitem.getCreators()[0].lastName+','+myitem.getField('date').substring(0,4)+'</a>';
}
var annotation=Zotero.Items.getByLibraryAndKey(Zotero.Libraries.userLibraryID,annotationID.replace("annotation-",""));
if(annotation.annotationType=="highlight"){
let page=JSON.parse(annotation.annotationPosition).pageIndex+1;
return `${annotation.annotationText}<br/>--✏️注释:${annotation.annotationComment} (<a href="zotero://open-pdf/library/items/${annotation.parentItem.key}?page=${page}&annotation=${annotation.key}">${annotation.parentItem.parentItem.getCreators()[0].lastName},${annotation.parentItem.parentItem.getField('date').substring(0,4)}</a>)`;
} else if(annotation.annotationType=="image"){
let page=JSON.parse(annotation.annotationPosition).pageIndex+1;
let Comment=annotation.annotationComment;
return `<img src="${Zotero.Annotations.getCacheImagePath(annotation)}"></img><br/>--✏️注释:${Comment} (<a href="zotero://open-pdf/library/items/${annotation.parentItem.key}?page=${page}&annotation=${annotation.key}">${annotation.parentItem.parentItem.getCreators()[0].lastName},${annotation.parentItem.parentItem.getField('date').substring(0,4)}</a>)`;
}
可以啊,但这样涉及到文献格式问题,可能每人要求都不一样。