qualidat
Threadersteller
Dabei seit: 14.09.2006
Ort: Eichwalde bei Berlin
Alter: 63
Geschlecht:
|
Verfasst Mi 19.08.2020 22:44
Titel Javascript: DIV geclont, Inhalt fehlt - Hilfe benötigt |
|
|
Der folgende JS-Code ist nicht für eine Webseite bestimmt, sondern soll in einem sog. "Webviewer", einem GUI-Element der Datenbank-Umgebung Filemaker Pro laufen. Ziel ist das Drucken von 2 gleichen QR-Codes (ca. 15x15mm) nebeneinander mit Abstand auf einem Label von 30x60mm.
Allerdings muss gleichzeitig eine "Macke" bzw. Bug von Filemaker Pro (V.16) ausgeglichen werden. FM hat die blöde Angewohnheit, bei einem Druckbefehl den Inhalt des Webviewers unmittelbar vorher nochmal zu refreshen. Dabei ist das Timing extrem knapp. Dauert der Aufbau zu lange, erhält man ein leeres Etikett.
Ohne dieses Problem wäre es selbstverständlich am Einfachsten, den Code einfach zwei mal auszuführen, mit zwei verschiedenen DIVs, das ist mir schon klar. Allerdings schlägt hier die Timing-Falle zu. Mit nur einem QR-Code klappt das Drucken nämlich, mit zweien nicht. Also dachte ich, ich berechne den QR-Code eben nur einmal und dupliziere dann das DIV. Leider wird dabei aber der QR-Code nicht mitgenommen ...
Bestimmt ist hier jemand, der da evtl. eine Lösung weiss, bitte mal drübersehen. Der Code für die Erstellung des QR-Codes (im Beitrag hier gekürzt) ist nicht von mir und so ganz bis zum Schluss verstehe ich ihn auch nicht. Das vollständige Codebeispiel liegt unter: Sourcecode
Alternativ kann ich natürlich auch zwei DIVs mit unterschiedlichen IDs platzieren, aber ich muss unbedingt vermeiden, den QRCode 2x zu brechnen. Wie bekomme ich den von DIV1 zu DIV2? Tests mit "innerHTML" brachten auch keinen Effekt, es kam nur der Content-Text mit
Das vollständige Codebeispiel liegt unter: https://www.qualidat.com/material/qrtest.zip
Danke für Tips.
Code: |
<html>
<head>
<script>
var QRCode;!function(){function a(a){this.mode= ... ; //<= Code gekürzt
</script>
<style>
img
{
width:50px;
margin: 1px;
padding: 0px;
margin-left: auto;
margin-right: auto;
display: block;}
div
{
float: left;
border-style:solid;
border-color: #aaa;
border-width: 3px;
width: 60px;
height: 70px;
margin: 5px;
padding: 0px;
text-align: center;
font-size: 8pt;
font-family: sans-serif;
}
body
{
margin: 0px;
padding: 0px;
overflow: hidden;
}
</style>
</head>
<body>
<script>var content = '123456';</script>
<div id='div'><script>document.write(content)</script></div>
<script>
div = document.getElementById('div')
qrc = new QRCode(div,{width:100,height:100});
//Objekt qrc erstellen mit Construktor, DIV und Höhe/Breite des QRCodes in Pixeln als Argument
qrc.makeCode(content);
//Methode makeCode aufrufen, Content als Argument. Hierbei entsteht ein Canvas mit dem QRCode im DIV ...
copy = div.cloneNode(true);
document.body.appendChild(copy);
// das Clonen klappt, aber es ist kein Canvas drin :-(
</script>
</body>
</html>
|
Zuletzt bearbeitet von qualidat am Mi 19.08.2020 22:45, insgesamt 1-mal bearbeitet
|
|