Javascript 如何在Moodle课程中定期更改HTML块的内容?
我需要在Moodle课程的不同时间段逐个显示多张图片。为此,我一次使用一个带有一张图片的HTML块(在我的第一次尝试中,我使用了一个随机词汇表条目块,结果证明这是一个不合适的解决方案)。HTML块方法有点麻烦,因为每当我想显示不同的图片时,我必须手动更新HTML块。Javascript 如何在Moodle课程中定期更改HTML块的内容?,javascript,html,automation,moodle,Javascript,Html,Automation,Moodle,我需要在Moodle课程的不同时间段逐个显示多张图片。为此,我一次使用一个带有一张图片的HTML块(在我的第一次尝试中,我使用了一个随机词汇表条目块,结果证明这是一个不合适的解决方案)。HTML块方法有点麻烦,因为每当我想显示不同的图片时,我必须手动更新HTML块。 我希望每天或每周自动更改HTML块中的图片。这能做到吗?如果是这样的话,有人能帮我找到正确的方向吗?我认为这个问题的关键是可以将javascript添加到html块中。这也是为什么这些功能被标记为XSS警告的原因。这是我的方法: 在
我希望每天或每周自动更改HTML块中的图片。这能做到吗?如果是这样的话,有人能帮我找到正确的方向吗?我认为这个问题的关键是可以将javascript添加到html块中。这也是为什么这些功能被标记为XSS警告的原因。这是我的方法:
标记。添加以下javascript以每周在这些图片中旋转:
//获取周数。
Date.prototype.getWeek=函数(){
var onejan=新日期(this.getFullYear(),0,1);
返回Math.ceil(((this-onejan)/86400000)+onejan.getDay()+1)/7);
}
var numberofweek=(新日期()).getWeek();
var parent=document.currentScript.parentNode;
var pictures=parent.querySelectorAll('img');
对于(var picturenumber=0;picturenumber
这种方法的缺点:
block\uHTML
如果比可用图片多周,图片将从头开始。您所说的“按显示顺序添加所有所需图片”是什么意思?我是否必须复制/粘贴HTML块“内容”框中的所有图像?这会有点麻烦,因为我有很多图片。我在moodle开发者的电报聊天中问他们,有没有可能将图像存储在“私人文件”中并从那里读取它们。我担心我们需要pluginfile URL来实现这一点,这将涉及PHP代码。在这里,只使用JS的实现是不可能的。因此,要从您的个人文件中读取图片,您需要实现一个单独的块。或者在moodle plugin目录中找到一个块,该块正好可以执行此操作。但我认为这不太可能。如果你的计算机上有所有的图片,你可以一次将它们全部拖到html块中。如果不是这样的话,最简单的方法可能是事先下载所有图片。