我想从collection.media
导入非声音,图片或视频的文件。例如,我想导入一个JSON文件。
我将文件_script.jquery-3.3.1.min.js
和_data.json
放在我的collection.media
文件夹中。
在Anki Desktop(Ubuntu)上,以下作品:
<script src="_script.jquery-3.3.1.min.js"></script>
<script>
$.getJSON('_data.json', function(data) {
// succeeds on Anki Desktop, fails on AnkiDroid
});
</script>
(关于Anki Desktop 2.0.47的注意事项我正在使用JS Booster插件)。
在AnkiDroid上,情况有所不同。 JQuery在脚本标记中加载得很好。但是,$.getJSON
无法找到_data.json
文件。
我想在许多卡/笔记上使用_data.json
。
如何在javascript中从collection.media
导入非媒体,非js文件,这种方式在Anki Desktop和AnkiDroid中都有效?
答案 0 :(得分:0)
我认为这与AnkiDroid处理collections.media
文件的方式有关。如果是这样,这可能是一个错误。一个真正的变通办法是将文件重命名为.svg
,以便AnkiDroid将其视为图像并允许其通过。
答案 1 :(得分:0)
我已经找到了一些可行的答案。 在AnkiDroid卡模板中获取角色数据。 (离线)
因为我们可以使用它来访问js和图像文件
id "com.jfrog.bintray" version "1.8.5"
访问plugins.apply(BintrayPlugin::class.java)
我尝试了相同的步骤,但遇到<script src="some-js-file.js"></script>
<img src="some-image.png"></img>
错误,因此我使用了后续步骤。
json
例如,
要访问CORS
文件
<!-- It will give CORS error -->
<script src="我.json" type="application/json"></script>
的内容复制到具有任何变量名称的javascript文件我.json
中,我.json
我.js
var char_data = {"strokes":["M 350 571 Q 3....}
中的代码要更改代码,请首先使用此https://beautifier.io美化代码,然后进行以下更改
a)删除链接以从Internet加载
b)更改此<!-- Note : file type & name -->
<script src="我.js" type="text/javascript"></script>
并替换/添加
_hanzi-writer.min.js
(也许可以在这里进行更好的替换)
200 != r.status
JSON.parse(JSON.stringify(char_data))
以上所有步骤均针对单个文件....
....
// Note : char_data variable come from 我.js file
r.overrideMimeType && r.overrideMimeType("application/json"), r.open("GET", "", !0), r.onerror = function(t) {
....
....
4 === r.readyState && (200 != r.status ? i(JSON.parse(JSON.stringify(char_data))) : 0 !== r.status && n && n(r))
....
....
要访问其他字符,请重复相同的操作。
对于类似问题,请查看我的代码
https://github.com/infinyte7/Anki-xiehanzi
https://github.com/infinyte7/hanzi-writer-data-in-javascript