我有2个网页,其中代码在一个页面上工作,但在另一个页面上它不起作用。代码应该用提交的文件打开一个新窗口以显示提交的文件。由于某种原因,它不会在失败的页面上执行此操作。
从moodle中获取的代码是:
function openDV(dvtype, submission_id, coursemoduleid) {
alert('i opendv');
$.ajax({
type: "POST",
url: "../../plagiarism/turnitin/ajax.php",
dataType: "html",
data: {action: dvtype, submission: submission_id, cmid: coursemoduleid},
success: function(data) {
alert('i success');
$("."+dvtype+"_form_"+submission_id).html(data);
alert('i success 2: '+"."+dvtype+"_form_"+submission_id);
$("."+dvtype+"_form_"+submission_id).children("form").on("submit", function(event) {
alert('debug 2');
dvWindow = window.open('', 'dv_'+submission_id);
dvWindow.document.write('<frameset><frame id="dvWindow" name="dvWindow"></frame></frameset>');
dvWindow.document.close();
$(dvWindow).bind('beforeunload', function() {
refreshScores(submission_id, coursemoduleid);
});
});
alert('i success 3');
$("."+dvtype+"_form_"+submission_id).children("form").submit();
$("."+dvtype+"_form_"+submission_id).html("");
},
error: function() {
alert('error!');
}
});
}
在失败的页面上,未达到alert('debug 2');
的代码。为什么呢?
答案 0 :(得分:1)
它不是Moodle核心代码的一部分,所以我猜测它下载了这个插件?
https://moodle.org/plugins/view/plagiarism_turnitin
虽然有两个版本,旧版本位于https://github.com/danmarsden/moodle-plagiarism_turnitin
最新版本是https://github.com/jmcgettrick/moodle-plagiarism_turnitin
我看得很快,看不到ajax代码。
你从哪里下载代码?你还在使用什么版本的Moodle?也许,请检查您是否使用最新版本的Moodle版本。
更新:上面的Moodle页面说需要安装turnitin模块。这是安装在目标服务器上吗?
https://moodle.org/plugins/view/mod_turnitintooltwo
更新2:啊,是的,ajax代码在turnitintooltwo
https://github.com/jmcgettrick/moodle-mod_turnitintooltwo/blob/master/jquery/turnitintooltwo.js
看起来您使用的代码已过时。