Ich verwende Qzprint API zum Drucken von Etiketten in meiner offenen Warenkorb-Erweiterung. Alles funktionierte gut, aber plötzlich hörte es auf, an FF zu arbeiten. Im Internet Explorer funktioniert es gut. Wenn ich Warnungen in meinen Funktionen von applet hinzufüge, funktioniert es gut auf firefox, aber nicht sicher, warum nicht ohne Warnungen. Hier ist mein Code.JS funktioniert nicht einwandfrei in Firefox
Aufruf Applet Funktionen in meinem header.tpl
<script type="text/javascript">
deployQZ('<?php echo HTTP_CATALOG ?>');
useDefaultPrinter();
<script>
Applet-Datei enthält Funktionen
function deployQZ(path) {
//alert("alert for printing label");
pathApplet = path + 'java/qz-print.jar';
pathJnlp = path + 'java/qz-print_jnlp.jnlp';
var attributes = {id: "qz", code:'qz.PrintApplet.class',
archive: pathApplet, width:1, height:1};
var parameters = {jnlp_href: pathJnlp,
cache_option:'plugin', disable_logging:'false',
initial_focus:'false'};
if (deployJava.versionCheck("1.7+") == true) {}
else if (deployJava.versionCheck("1.6+") == true) {
attributes['archive'] = 'java/jre6/qz-print.jar';
parameters['jnlp_href'] = 'java/jre6/qz-print_jnlp.jnlp';
}
deployJava.runApplet(attributes, parameters, '1.5');
}
/**
* Automatically gets called when applet has loaded.
*/
function qzReady() {
// Setup our global qz object
window["qz"] = document.getElementById('qz');
//var title = document.getElementById("title");
if (qz) {
try {
//title.innerHTML = title.innerHTML + " " + qz.getVersion();
//document.getElementById("content").style.background = "#F0F0F0";
} catch(err) { // LiveConnect error, display a detailed meesage
document.getElementById("content").style.background = "#F5A9A9";
alert("ERROR: \nThe applet did not load correctly. Communication to the " +
"applet has failed, likely caused by Java Security Settings. \n\n" +
"CAUSE: \nJava 7 update 25 and higher block LiveConnect calls " +
"once Oracle has marked that version as outdated, which " +
"is likely the cause. \n\nSOLUTION: \n 1. Update Java to the latest " +
"Java version \n (or)\n 2. Lower the security " +
"settings from the Java Control Panel.");
}
}
}
/**
* Returns is the applet is not loaded properly
*/
function isLoaded() {
if (!qz) {
alert('Error:\n\n\tPrint plugin is NOT loaded!');
return false;
} else {
try {
if (!qz.isActive()) {
alert('Error:\n\n\tPrint plugin is loaded but NOT active!');
return false;
}
} catch (err) {
alert('Error:\n\n\tPrint plugin is NOT loaded properly!');
return false;
}
}
return true;
}
function useDefaultPrinter() {
//alert("alert for printing label");
if (isLoaded()) {
// Searches for default printer
qz.findPrinter();
// Automatically gets called when "qz.findPrinter()" is finished.
window['qzDoneFinding'] = function() {
// Alert the printer name to user
var printer = qz.getPrinter();
//alert(printer !== null ? 'Default printer found: "' + printer + '"':
//'Default printer ' + 'not found');
document.getElementById("name_printer").innerHTML = 'Default printer found: "' + printer + '"';
// Remove reference to this function
window['qzDoneFinding'] = null;
defaultFound = true;
};
}
}
Da u in meinem deployqz sehen() und UseDefaultPrinter() -Funktionen ich habe Warnung auf der ersten Zeile, die in Kommentaren ist, wenn es kommentierte es funktioniert nicht in Feuer Fuchs und wenn nicht kommentiert, als es funktioniert gut. Mit Kommentaren bekomme ich eine Warnmeldung von der isLoaded() Funktion "Print plugin is NOT LADED"!
Auch in meiner Konsole bekomme ich diesen
Ein unausgewogener Baum geschrieben wurde document.write() verwendet verursachten Daten aus dem Netzwerk neu geparst werden. Weitere Informationen https://developer.mozilla.org/en/Optimizing_Your_Pages_for_Speculative_Parsing
wie ein Timing-Problem sieht. Ändere 'if (isLoaded()) {...}' in if (isLoaded()) {...} else {setTimeout (useDefaultPrinter, 300); } ' – mplungjan
@mplungjan, auch wenn ich nicht useDefaultPrinter() aufrufen gibt es mir Fehler, so denke ich, es ist auf die deployqz() .. –
Versuchen Sie,' var qz; 'vor der ersten Funktion, dann ändern' window ["qz "] =' to 'qz =' - Ich sehe 'qzReady()' nirgends, daher wird es wahrscheinlich vom Applet aufgerufen. Haben Sie Fehler in der Konsole? Kannst du qzReady() auf die Art verzögern und aufrufen, wie ich useDefaultPrinter aufgerufen habe? – mplungjan