Skip to content

Instantly share code, notes, and snippets.

@RLogik
Last active June 20, 2017 12:32
Show Gist options
  • Save RLogik/272371149e70fe9ecb7424b796a6083e to your computer and use it in GitHub Desktop.
Save RLogik/272371149e70fe9ecb7424b796a6083e to your computer and use it in GitHub Desktop.
<html>
<head>
<meta charset='utf-8'>
<meta name='viewport' content='height=device-height, width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1'>
<style>
body {
font-family: georgia;
background: transparent;
color: #000000;
margin: 0px 8px;
height: 700px;
min-height: 400px;
}
table {
border: transparent;
}
td {
border: 1px solid rgba(0,0,0,0.3);
}
.seiten-spalte {
max-width: 600px;
}
.antwort {
font-family: georgia;
font-style: normal;
color: rgba(95,140,75,1);
}
.input {
font-family: georgia;
font-style: normal;
color: black;
font-weight: bold;
}
.eingabe {
font-family: georgia;
font-style: normal;
color: blue;
}
ol {
margin:0;
padding:0;
counter-reset:item;
}
ol li {
list-style-type:none;
counter-increment:item;
padding:0 0 1em 0;
}
ol li:before {
width:1.5em;
font-weight:bold;
color: red;
content:counter(item) '.';
}
.btn-flach {
background-color: rgba(0,0,0,0.025);
border: 1px solid #000000;
border-radius: 3px;
text-align: center;
vertical-align: middle;
}
.html2canvasreset{
overflow: visible !important;
width: auto !important;
height: auto !important;
max-height: auto !important;
}
</style>
<script src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js'></script>
<script src='https://raw.githubusercontent.com/niklasvh/html2canvas/master/dist/html2canvas.js'></script>
<script src='https://raw.githubusercontent.com/niklasvh/feedback.js/master/feedback.min.js'></script>
<script src='https://cdn.rawgit.com/eligrey/Blob.js/0cef2746414269b16834878a8abc52eb9d53e6bd/Blob.js'></script>
<script src='https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js'></script>
<script src='https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js'></script>
</head>
<body align='center'>
<div id='MeinBody'>
<br>
<div class='seiten-spalte' style='width:100%;border:1px solid black;border-radius:3px;resize:none;display:inline-block;'>
<table style='width:100%;font-size:small;'>
<tr><td>Name:</td><td><input class='input' id='user' type='text' style='width:100%;'></input></td></tr>
<tr><td>Russischniveau:</td><td><input class='input' type='text' style='width:100%;'></input></td></tr>
<tr><td>Deutschniveau:</td><td><input class='input' type='text' style='width:100%;'></input></td></tr>
</table>
</div>
<br>
<div class='seiten-spalte' style='height:75%;width:100%;border:1px solid black;border-radius:3px;resize:none;overflow-x:scroll;overflow-y:scroll;display:inline-block;'>
<!-- div style='height:92%;width:45%;background:#FFEEE1;border:1px solid black;border-radius:3px;vertical-align:top;overflow-y:none;display:inline-block;'>
<div style='height:100%;width:100%;overflow-y:scroll;display:inline-block;' -->
<div style='background:#FFEEE1;border:1px solid black;border-radius:3px;'>
<h2 align='center'>Teil 1.</h2>
<ol id='test-teil-1' align='left'>
<li>
<span>Bestimmen Sie bitte die weibliche Form des jeweiligen Berufs:</span>
<table style='width:100%;'>
<tr>
<td>он</td>
<td class='eingabe'>артист</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td>он</td>
<td class='eingabe'>иностранец</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td>он</td>
<td class='eingabe'>журналист</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td>он</td>
<td class='eingabe'>учитель</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td>он</td>
<td class='eingabe'>школьник</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td>он</td>
<td class='eingabe'>студент</td>
<td>она</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
</table>
</li>
<li>
<span>Ordnen Sie jedem Adverb bzw. Adjektiv das passende Gegenwort zu:</span>
<table style='width:100%;'>
<tr>
<td class='eingabe'>громко</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>поздно</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>холодно</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>хороший</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>дорогой</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>легкий</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
</table>
</li>
<li>
<span>Übersetzen Sie bitte die folgenden Wörter ins Deutsche:</span>
<table style='width:100%;'>
<tr>
<td class='eingabe'>кровать</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>рюкзак</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>стул</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>фамилия</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>паспорт</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>музей</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>ветер</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>лекция</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>магазин</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
</table>
</li>
</ol>
</div>
<!-- /div>
</div-->
<br>
<!-- div style='height:92%;width:45%;background:#FFEEE1;border:1px solid black;border-radius:3px;vertical-align:top;overflow-y:none;display:inline-block;'>
<div style='height:100%;width:100%;overflow-y:scroll;display:inline-block;' -->
<div style='background:#FFEEE1;border:1px solid black;border-radius:3px;'>
<h2 align='center'>Teil 2.</h2>
<ol id='test-teil-2' align='left'>
<li>
<span>Определите род следующих существительных. Ordnen Sie jedem Substantiv sein Genus (м=der, с=das, ж=die) zu!</span>
<table style='width:100%;'>
<tr>
<td class='eingabe'>тетрадь</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr><tr>
<td class='eingabe'>медведь</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>дверь</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>день</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>мать</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>июнь</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>вещь</td>
<td>
<form>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>м</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>с</span></div>
<div style='display:inline-block;'><input type='radio' name='geschlecht'/><span>ж</span></div>
</form>
</td>
</tr>
</table>
</li>
<li>
<span>Подбери к данным существительным синонимы с шипящей на конце слова, используя слова для справок. Ordnen Sie jedem Wort das entsprechende mit Zischlaut endende Gegenstück zu!</span>
<p>
<i>Например:</i> неправда — ложь.
</p>
<table style='width:100%;'>
<tr>
<td class='eingabe'>друг</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>доктор</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>неправда</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>поддержка</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>родник</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
</table>
<p>
<b>Слова для справок:</b>
<span class='eingabe'>ключ</span>;
<span class='eingabe'>ложь</span>;
<span class='eingabe'>товарищ</span>;
<span class='eingabe'>врач</span>;
<span class='eingabe'>помощь</span>.
</p>
</li>
<li>
<span>Подбери к словам фразеологизмы-синонимы. Ordnen Sie jedem Begriff die näherliegende Redewendung zu!</span>
<p><b>Begriffe</b></p>
<table style='width:100%;'>
<tr>
<td class='eingabe'>обманывать/говорить неправду</td>
<td align='center'>
<form>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(a)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(b)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(c)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(d)</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>мечтать</td>
<td align='center'>
<form>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(a)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(b)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(c)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(d)</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>обещать</td>
<td align='center'>
<form>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(a)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(b)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(c)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(d)</span></div>
</form>
</td>
</tr>
<tr>
<td class='eingabe'>медлить/делать медленно</td>
<td align='center'>
<form>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(a)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(b)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(c)</span></div>
<div style='display:inline-block;'><input type='radio' name='opt'/><span>(d)</span></div>
</form>
</td>
</tr>
</table>
<p>
<b>Redewendungen:</b>
(a) <span class='eingabe'>витать в облаках</span>;
(b) <span class='eingabe'>водить за нос</span>;
(c) <span class='eingabe'>тянуть кота за хвост</span>;
(d) <span class='eingabe'>дать слово</span>.
</p>
</li>
<li>
<span>Переведите слова на русский язык: Übersetzen Sie die folgenden Wörter ins Russische!</span>
<table style='width:100%;'><tr>
<td class='eingabe'>der Junge</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>das Kostüm</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>die Poliklinik</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>der Gast</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>das Talent</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
<tr>
<td class='eingabe'>der Tanz</td>
<td align='center'><input class='antwort' type='text' style='width:90%;'></input></td>
</tr>
</table>
</li>
</ol>
</div>
<!-- /div>
</div-->
</div>
<br>
<div align='center' style='font-size:small;display:inline-block;'>
<span>Jetzt</span>
<input type='button' id='submit-speichern' class='btn-flach' value='speichern'/>
<span>oder per</span>
<input type='button' id='submit-email' class='btn-flach' value='E-mail schicken!'/>
</div>
<br>
</div>
</body>
<!-- HAUPTSKRIPT -->
<script id='MeinSkript' type='text/javascript'>
// GLOBALE KONSTANTEN:
const em_head = 'Russischtest';
const header = [
" <head>",
" <meta charset='utf-8'>",
" <meta name='viewport' content='width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1'>",
" <style>",
" body {",
" font-family: georgia;",
" background: transparent;",
" color: #000000;",
" margin: 0px 8px;",
" height: 700px;",
" min-height: 400px;",
" }",
" table {",
" border: transparent;",
" }",
" td {",
" border: 1px solid rgba(0,0,0,0.3);",
" }",
" .seiten-spalte {",
" max-width: 600px;",
" }",
" .antwort {",
" font-family: georgia;",
" font-style: normal;",
" color: rgba(95,140,75,1);",
" }",
" .eingabe {",
" font-style: normal;",
" color: blue;",
" }",
" ol {",
" margin:0;",
" padding:0;",
" counter-reset:item;",
" }",
" ol li {",
" list-style-type:none;",
" counter-increment:item; ",
" padding:0 0 1em 0;",
" }",
" ol li:before {",
" width:1.5em;",
" font-weight:bold;",
" color: red;",
" content:counter(item) '.';",
" }",
" .btn-flach {",
" background-color: rgba(0,0,0,0.025);",
" border: 1px solid #000000;",
" border-radius: 3px;",
" text-align: center;",
" vertical-align: middle;",
" }",
" .html2canvasreset{",
" overflow: visible !important;",
" width: auto !important;",
" height: auto !important;",
" max-height: auto !important;",
" }",
" </style>",
" <script src='https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js'><\/script>",
" <script src='https://raw.githubusercontent.com/niklasvh/html2canvas/master/dist/html2canvas.js'><\/script>",
" <script src='https://raw.githubusercontent.com/niklasvh/feedback.js/master/feedback.min.js'><\/script>",
" <script src='https://cdn.rawgit.com/eligrey/Blob.js/0cef2746414269b16834878a8abc52eb9d53e6bd/Blob.js'><\/script>",
" <script src='https://cdn.rawgit.com/eligrey/canvas-toBlob.js/f1a01896135ab378aa5c0118eadd81da55e698d8/canvas-toBlob.js'><\/script>",
" <script src='https://cdn.rawgit.com/eligrey/FileSaver.js/e9d941381475b5df8b7d7691013401e171014e89/FileSaver.min.js'><\/script>",
" </head>",
].join('\n');
// FUNKTIONEN.
var dgel = function(str) {
var x = [];
knoten = $(str);
for(var k=0; k<knoten.length; k++) {
x.push(knoten[k]);
};
return x;
};
// KLASSEN.
// NODE-ELEMENTE.
Object.defineProperties(Node.prototype, {
'innerHTMLcurr': {
value: function(erster) {
var el = this;
var s = '';
var inkljs = true;
if(!(args[0] == null)) inkljs = args[0];
var typ = el.nodeType;
if(typ === 1) {
var tag = el.tagName.toLowerCase();
var knoten = el.childNodes;
if(knoten.length > 0) {
for(var k=0; k<knoten.length; k++) s += knoten[k].outerHTMLcurr(inkljs);
} else {
s += el.innerHTML;
}
} else if(typ === 3) {
s += el.textContent;
}
return s;
},
writable:false,
enumerable:false,
configurable:false,
},
'outerHTMLcurr': {
value: function() {
var el = this;
var s = '';
var args = arguments;
var inkljs = true;
if(!(args[0] == null)) inkljs = args[0];
var typ = el.nodeType;
if(typ === 1) {
var tag = el.tagName.toLowerCase();
if(inkljs || !(tag === 'script')) {
s += '<' + tag;
var sonderliste = ['value','checked'];
var attr = el.attributes;
for(var k=0; k<attr.length; k++) {
var key = attr[k].name;
if(['align','class','style','charset'].indexOf(key)>=0) {
var val = attr[k].value;
} else {
var val = el[key];
}
var j = sonderliste.indexOf(key);
if(j >= 0) sonderliste.splice(j,1);
if(!(val === false || val === undefined)) s += ' ' + key + '=\'' + val + '\'';
}
sonderliste.forEach(function(key) {
var val = el[key];
if(!(val === false || val === undefined)) s += ' ' + key + '=\'' + val + '\'';
});
s += '>';
var knoten = el.childNodes;
if(knoten.length > 0) {
for(var k=0; k<knoten.length; k++) s += knoten[k].outerHTMLcurr(inkljs);
} else {
s += el.innerHTML;
}
if(['br','hr','input'].indexOf(tag) === -1) s += '</' + tag + '>';
}
} else if(typ === 3) {
s += el.textContent;
}
return s;
},
writable:false,
enumerable:false,
configurable:false,
}
});
var getHTML = function() {
var node_body = dgel('#MeinBody')[0];
var node_js = dgel('#MeinSkript')[0];
var HTML = ['<html>',header,'<body align=\'center\'>',node_body.outerHTMLcurr(false),'<\/body>',node_js.outerHTMLcurr(),'<\/hmtl>'].join('\n');
return HTML;
};
var getBLOB = function() {
var user = dgel('#user')[0].value;
var datum = new Date();
datum = {
day: datum.getDate(),
month: datum.getMonth()+1,
year: datum.getFullYear(),
};
if(datum.day<10) datum.day = '0'+datum.day;
if(datum.month<10) datum.month = '0'+datum.month;
datum = ''+datum.day+'-'+datum.month+'-'+datum.year;
HTML = getHTML();
var blob = new Blob([HTML], {type: 'text/html'});
var bloburl = URL.createObjectURL(blob);
return {user:user, datum:datum, url:bloburl};
};
// KNÖPFE VERLINKEN.
document.addEventListener('DOMContentLoaded', function(event) {
dgel('.antwort').forEach(function(node) {
node.spellcheck = false; // verhindere Rechtschreibprüfung!
});
dgel('#submit-speichern')[0].onclick = function(event) {
var obj = getBLOB();
var user = obj.user;
var datum = obj.datum;
var bloburl = obj.url;
var stamp = em_head+'-'+user+'-'+datum+'.html';
var a = document.createElement('a');
a.href = bloburl;
a.download = stamp;
a.innerHTML = '';
a.style.display = 'none';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(bloburl);
};
dgel('#submit-email')[0].onclick = function(event) {
var obj = getBLOB();
var user = obj.user;
var datum = obj.datum;
var bloburl = obj.url;
var xhr = new XMLHttpRequest;
xhr.responseType = 'blob';
xhr.onload = function() {
var recovered = xhr.response;
var reader = new FileReader;
reader.onload = function() {
var url = reader.result;
var subj = em_head+' | '+user+' | '+datum;
var emailurl = [
'mailto:','?subject=',encodeURIComponent(subj),'&body=',encodeURI('Die Ergebnisse lassen sich über den folgenden Link prüfen (kopieren und in Browser einsetzen):\n\n'+url+'\n\nEnde der Übersendung.'),
].join('');
window.location = emailurl;
URL.revokeObjectURL(bloburl);
};
reader.readAsDataURL(recovered);
};
xhr.open('GET',bloburl);
xhr.send();
};
});
</script>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment