2015-08-17 2 views
0

У меня 2 веб-страницы, где код работает на одной странице, а на другой странице он не будет работать. Код должен открыть новое окно с предоставленным файлом для отображения представленного файла. По какой-то причине он не будет делать это на странице, которая терпит неудачу.Почему код не был достигнут?

Кода, который берется из Мудла:

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'); не достигается. Зачем?

+4

'$ (". "+ Dvtype +" _ form _ "+ submission_id) .children (" form "). On (" submit ",' только прикрепляет обработчик событий, но не вызывает его. PS: это ужасная штука – zerkms

+0

@zerkms Хорошо, но почему он работает на других страницах? Он также работает локально, но не на сервере ссылок. Я думал, что должна быть какая-то разница , но строка вызывается на другой странице, где используется код. –

+1

Я не уверен, что означает «работа» в этом случае: '.on()' только прикрепляет обработчик и никогда не вызывает его. Просто по определению. – zerkms

ответ

1

Это не часть кода ядра Moodle, поэтому я предполагаю, что это скачать этот плагин?

https://moodle.org/plugins/view/plagiarism_turnitin

Есть 2 версии, хотя, старый один находится в https://github.com/danmarsden/moodle-plagiarism_turnitin

последняя один находится в https://github.com/jmcgettrick/moodle-plagiarism_turnitin

У меня был очень быстрый взгляд и не мог видеть код Ajax.

Где вы загружали код? Также, какую версию Moodle вы используете? Возможно, проверьте, что вы используете последнюю версию плагина для своей версии Moodle.

UPDATE: На странице Moodle выше указано, что необходимо установить модуль turnitin. Установлено ли это на целевом сервере?

https://moodle.org/plugins/view/mod_turnitintooltwo

UPDATE 2: Ах да, код Ajax в turnitintooltwo

https://github.com/jmcgettrick/moodle-mod_turnitintooltwo/blob/master/jquery/turnitintooltwo.js

Это выглядит как код вашего используемого устарело.

+0

Спасибо! Я собираюсь попробовать с последней версией. –