kopia lustrzana https://github.com/viljoviitanen/qrcodejs
add SVG support
rodzic
9c38ec734b
commit
1b87ce8ca6
|
@ -0,0 +1,37 @@
|
||||||
|
<?xml version="1.0" standalone="yes"?>
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="-50 0 200 100">
|
||||||
|
<g id="qrcode"/>
|
||||||
|
<foreignObject x="-50" y="0" width="100" height="100">
|
||||||
|
<body xmlns="http://www.w3.org/1999/xhtml" style="padding:0; margin:0">
|
||||||
|
<div style="padding:inherit; margin:inherit; height:100%">
|
||||||
|
<textarea id="text" style="height:100%; width:100%; position:absolute; margin:inherit; padding:inherit">james</textarea>
|
||||||
|
</div>
|
||||||
|
<script type="application/ecmascript" src="qrcode.js"></script>
|
||||||
|
<script type="application/ecmascript">
|
||||||
|
var elem = document.getElementById("qrcode");
|
||||||
|
var qrcode = new QRCode(elem, {
|
||||||
|
width : 100,
|
||||||
|
height : 100
|
||||||
|
});
|
||||||
|
|
||||||
|
function makeCode () {
|
||||||
|
var elText = document.getElementById("text");
|
||||||
|
|
||||||
|
if (elText.value === "") {
|
||||||
|
//alert("Input a text");
|
||||||
|
//elText.focus();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
qrcode.makeCode(elText.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
makeCode();
|
||||||
|
|
||||||
|
document.getElementById("text").onkeyup = function (e) {
|
||||||
|
makeCode();
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</foreignObject>
|
||||||
|
</svg>
|
Po Szerokość: | Wysokość: | Rozmiar: 1.1 KiB |
52
qrcode.js
52
qrcode.js
|
@ -116,8 +116,56 @@ var QRCode;
|
||||||
return android;
|
return android;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var svgDrawer = (function() {
|
||||||
|
|
||||||
|
var Drawing = function (el, htOption) {
|
||||||
|
this._el = el;
|
||||||
|
this._htOption = htOption;
|
||||||
|
};
|
||||||
|
|
||||||
|
Drawing.prototype.draw = function (oQRCode) {
|
||||||
|
var _htOption = this._htOption;
|
||||||
|
var _el = this._el;
|
||||||
|
var nCount = oQRCode.getModuleCount();
|
||||||
|
var nWidth = Math.floor(_htOption.width / nCount);
|
||||||
|
var nHeight = Math.floor(_htOption.height / nCount);
|
||||||
|
|
||||||
|
this.clear();
|
||||||
|
|
||||||
|
function makeSVG(tag, attrs) {
|
||||||
|
var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
|
||||||
|
for (var k in attrs)
|
||||||
|
if (attrs.hasOwnProperty(k)) el.setAttribute(k, attrs[k]);
|
||||||
|
return el;
|
||||||
|
}
|
||||||
|
|
||||||
|
var svg = makeSVG("svg" , {'viewBox': '0 0 ' + String(nCount) + " " + String(nCount), 'width': '100%', 'height': '100%', 'fill': _htOption.colorLight});
|
||||||
|
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:xlink", "http://www.w3.org/1999/xlink");
|
||||||
|
_el.appendChild(svg);
|
||||||
|
|
||||||
|
svg.appendChild(makeSVG("rect", {"fill": _htOption.colorDark, "width": "1", "height": "1", "id": "template"}));
|
||||||
|
|
||||||
|
for (var row = 0; row < nCount; row++) {
|
||||||
|
for (var col = 0; col < nCount; col++) {
|
||||||
|
if (oQRCode.isDark(row, col)) {
|
||||||
|
var child = makeSVG("use", {"x": String(row), "y": String(col)});
|
||||||
|
child.setAttributeNS("http://www.w3.org/1999/xlink", "href", "#template")
|
||||||
|
svg.appendChild(child);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
Drawing.prototype.clear = function () {
|
||||||
|
while (this._el.hasChildNodes())
|
||||||
|
this._el.removeChild(this._el.lastChild);
|
||||||
|
};
|
||||||
|
return Drawing;
|
||||||
|
})();
|
||||||
|
|
||||||
|
var useSVG = document.documentElement.tagName.toLowerCase() === "svg";
|
||||||
|
|
||||||
// Drawing in DOM by using Table tag
|
// Drawing in DOM by using Table tag
|
||||||
var Drawing = !_isSupportCanvas() ? (function () {
|
var Drawing = useSVG ? svgDrawer : !_isSupportCanvas() ? (function () {
|
||||||
var Drawing = function (el, htOption) {
|
var Drawing = function (el, htOption) {
|
||||||
this._el = el;
|
this._el = el;
|
||||||
this._htOption = htOption;
|
this._htOption = htOption;
|
||||||
|
@ -495,4 +543,4 @@ var QRCode;
|
||||||
* @name QRCode.CorrectLevel
|
* @name QRCode.CorrectLevel
|
||||||
*/
|
*/
|
||||||
QRCode.CorrectLevel = QRErrorCorrectLevel;
|
QRCode.CorrectLevel = QRErrorCorrectLevel;
|
||||||
})();
|
})();
|
||||||
|
|
Ładowanie…
Reference in New Issue