Interfejs API Postmessage służy do wysyłania dodatkowych informacji na stronę, na której osadzony jest nasz egzamin.
Dokumentacja interfejsu API POST message
Interfejs API Postmessage wyśle na stronę, na której osadzony jest egzamin, komunikat, który będzie wyglądał mniej więcej tak:
{
status: 'ranking',
ranking: {
score: 50, // Liczba, ocena z egzaminu. 100 oznacza 100% poprawnych odpowiedzi, 0 oznacza 0% poprawnych odpowiedzi
answered: 2, // Liczba, liczba pytań, na które udzielono odpowiedzi w tej sesji
correct: 1, // Liczba, liczba pytań, na które udzielono (częściowo) poprawnych odpowiedzi
incorrect: 1, // Liczba, liczba pytań, na które udzielono błędnych odpowiedzi
points: 2, // Liczba, liczba punktów uzyskanych w tej sesji
maximum: 4, // Liczba, maksymalna liczba możliwych punktów w tej sesji
category: {
title: 'Niepowodzenie' // Ciąg znaków,
}
}
}
Dla Państwa wygody poniżej zamieściliśmy przykładowy kod JavaScript, który można wykorzystać na stronie, na której umieszczają Państwo kod osadzający. Korzysta on z biblioteki jQuery, ale w razie potrzeby wymóg ten można łatwo usunąć.
<script type="text/javascript>
// Przykładowa implementacja zdarzeń. Korzystanie z jQuery w wersji 1.7 lub nowszej
// Powinno działać w następujących przeglądarkach: [http://caniuse.com/#feat=x-doc-messaging](http://caniuse.com/#feat=x-doc-messaging)
jQuery(window).on("message onmessage", function(event) {
var origin = event.originalEvent.origin;
var allowedDomains = [
'[https://www.onlinequizcreator.com]([https://www.onlinequizcreator.com/](https://www.onlinequizcreator.com/))',
'[https://www.onlineassessmenttool.com]([https://www.onlineassessmenttool.com/](https://www.onlineassessmenttool.com/))',
'[https://www.onlineexambuilder.com]([https://www.onlineexambuilder.com/](https://www.onlineexambuilder.com/))',
'[https://www.easy-lms.com]([https://www.easy-lms.com/pl/404/))'
];
try {
var data = (typeof event.originalEvent.data === "string") ? JSON.parse(event.originalEvent.data) || event.originalEvent.data;
}
catch (e) {
return;
}
if (allowedDomains.indexOf(origin) !== -1 && data.status && data.ranking) {
// Twój własny skrypt....
// Dostępne są następujące zmienne
data.ranking.score; // Ocena (w %) z tego egzaminu. Np. 100 za wszystkie poprawne odpowiedzi i 0, gdy wszystkie odpowiedzi były błędne
data.ranking.answered; // Łączna liczba pytań, na które udzielono odpowiedzi
data.ranking.correct; // Liczba poprawnie udzielonych odpowiedzi
data.ranking.incorrect; // Liczba błędnych odpowiedzi
data.ranking.points; // Liczba punktów, które uczestnik uzyskał w tej sesji
data.ranking.maximum; // Maksymalna możliwa liczba punktów za ten egzamin
data.ranking.category.title; // Nazwa kategorii, do której należy uczestnik. Prawdopodobnie „Zdał” lub „Nie zdał”
}
});
</script>
