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 wiadomość na stronę, na której osadzony jest egzamin, która będzie wyglądać mniej więcej tak:
{
status: 'ranking',
ranking: {
score: 50, // Liczba, wynik 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) poprawnej odpowiedzi
incorrect: 1, // Liczba, liczba pytań, na które udzielono błędnej odpowiedzi
points: 2, // Liczba, liczba punktów zdobytych w tej sesji
maximum: 4, // Liczba, maksymalna liczba możliwych punktów za tę sesję
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 ten element. Wykorzystuje on bibliotekę 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 (%) 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>
