Closed PrentissLiu closed 5 months ago
您好,非常感谢您提交的pr! 我研究了一下,文档中默认提供的 JavaScript 代码使用了与苹果的 Safari 浏览器不兼容的API,导致代码无法在 AnkiMobile 正常工作
不过,您提交的代码似乎会导致以下问题:
\[
转义不正确,例如<div id="back">[这是链接的\[标题]|nid1716565619370]</div>
的渲染不正确我重新实现了一个方案,应当同时能在苹果、安卓和PC上兼容运行:
class
属性"linkRender"
,也可以自定义名称
<div class="linkRender">{{Front}}</div>
<div class="linkRender">{{Back}}</div>
<div class="linkRender">{{Addition}}</div>
<script>
try { AnkiNoteLinkerIsActive } catch (e) {
for (const ele of document.getElementsByClassName("linkRender")) {
ele.innerHTML = ele.innerHTML
.replace(/\[((?:[^\[]|\\\[)*?)\|nid\d{13}\]/g, (match, title) => title.replace(/\\\[/g, '['))
}
}
</script>
不过我手上没有IOS设备,无法进行测试,您可以试一下这个方案是否有效,可以的话我就把这个方案更新进文档
经过iOS版本AnkiMobile 24.04版本的测试,这个方案有效。所有的字段可以添加同一个class
属性,这无疑是最好的解决方案,谢谢您的跟进!测试图:
对ankimobile适配javascript代码,解决了Ankimobile(iOS)上使用的无法正常显示卡片的问题。