Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
显示不带HTML DOM的JavaScript生成的二维码_Javascript_Html - Fatal编程技术网

显示不带HTML DOM的JavaScript生成的二维码

显示不带HTML DOM的JavaScript生成的二维码,javascript,html,Javascript,Html,我已经测试了以下内容,以生成和显示二维码,并在我的桌面上正常工作 我使用的图书馆是 用于Javascript的跨浏览器QRCode生成器 var qrcode=新的qrcode(document.getElementById(“qrcode”){ 宽度:100, 身高:100 }); makeCode(“你好世界”); 问题是我想在限制JavaScript使用的嵌入式设备上运行此代码: …所有JS代码在执行HTML代码之前都经过预处理。因此,在JS中,无法获取或读取任何html元素。这可能会

我已经测试了以下内容,以生成和显示二维码,并在我的桌面上正常工作

我使用的图书馆是


用于Javascript的跨浏览器QRCode生成器
var qrcode=新的qrcode(document.getElementById(“qrcode”){
宽度:100,
身高:100
});
makeCode(“你好世界”);
问题是我想在限制JavaScript使用的嵌入式设备上运行此代码:

…所有JS代码在执行HTML代码之前都经过预处理。因此,在JS中,无法获取或读取任何html元素。这可能会限制使用第三方JS库组件,这些组件通常允许访问HTMLDOM元素,然后执行本例中不允许的操作


不使用
getElementById
是否可以在HTML中显示此QR?

我想不使用此库。。此库也需要附加dom元素

可能的解决方案是生成二维图像。然后打开图像?
另一个解决方案是将返回的SVG转换为base64,并打开url。但是这需要重写qrcode.js文件。

如果可能的话,您可以使用
jsdom
和此代码的组合来使用node.js在服务器端呈现它。(是的,node.js也可以在一些嵌入式设备上运行……如果出于某种原因这是您的服务器)

constjsdom=require(“jsdom”);
const{JSDOM}=JSDOM;
//创建一个虚拟DOM!
const{document,navigator}=(新的JSDOM(``)).window;
//这是来自的代码https://github.com/davidshimjs/qrcodejs/blob/master/qrcode.min.js
//旁注:永远不要运行不信任的代码。
var QRCode;!该。数据=a,这。这个。这个。这个。这个。这个。这个。这个。这个。这个。解析达达。为;为(var b=[,d=0,d=0,e=这。数据。长度;e;长度;e>d;d;d;d;d;d;d;d;d;d;d;d;d;d;长度;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;c)c;c。长度;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;d;c;c>>>12,b[1]=128 |(4032&f)>>>6,b[2]=128 | 63&f):f>128?(b[0]=192 |(1984&f)>>>6,b[1]=128 | 63&f):b[0]=f,this.parsedData=this.parsedData.concat(b)}this.parsedData.length!=this.data.length&(this.parsedData.unshift(191),this.parsedData.unshift(187),this.parsedData.unshift(239))}函数b(a,b){this.typeNumber=a,this.errorcorrectorlevel=b,this.modules=null,this.modules=null,this.moduleCount=0,this.dataCache=null,this.dataList=[]b){if(void 0==a.length)抛出新错误(a.length+“/”+b);for(var c=0;c=e)break;c++}if(c>l.length)抛出新错误(“太长的数据”);返回c}函数s(a){var b=encodeURI(a).toString()。替换(/\%[0-9a-fA-F]{2}/g,“a”);返回b.length+(b.length!=a?3:0)}a.prototype={getLength:function()返回此函数。parsedData(var b=0,c=0,c=本。c=0,c=本。c=本。parsedData[b,b,8)},b.原型},b.原型},b.b.原型{b.原型{b.c=0,c=本。c=c=新的a(b)函数,c;这个。c=c=新的a;b;这个。这个。数据列表;这个。数据表.数据表.数据表.数据表.c=c=c=本。这次。这次。这次.数据表.这次.这次.数据表.这次.这次.数据表.这次.这次.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.语法.=d)| | d>=0&&6>=d&&0==c | | 6==c)||c> 2.2&&4>=c&&4>=c&&4>=c&&4>=c&&4>=c&&4>=c&&4>=c&&4>=c(=c&&d>=c(=c&&d>=d>=2&&4>=2.2&&4>=4>=4>=4>=d>=d>=0:[1:[1:[1:[1:[1:[1:[0]1]1]0:[0==0==0]d)1]d)d)d)d)和(a=a=a=d)a=d)a=d)a=d(a=d)a=d,(a=d,(a=d,d,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b,b=c=c=c=c=c=c=c=c)c b>>c);this.modules[c%3+this.moduleCount-8-3][Math.floor(c/3)])6>e?这个.模块[e][8]=g:g:8.这个.模块[8[这个.模块[8]该.模块[e+1][8][8]=g:8>g:8>e.这个.模块[e+1][8]=g:这个.模块[这个.模块[这个.模块[这个.模块[这个.这个.模块帐户帐户帐户-15+15+e][8][8][8][8][8]=g.模块[这个.模块[这个.模块[这个.这个.这个.模块[这个.这个.这个.模块[这个.这个.模块[这个.这个.这个.模块[这个.这个.这个.模块[这个.这个.这个.这个.这个.这个.模块帐户帐户帐户帐户帐户帐户帐户-15+15+15+15+e][8][8][8][8][8][8][8][8][8][8][8][8][8][8[8]=!a}(a,b){(a,b){(a,b){(a,b){(a,b){(a,b){(a,b)函数(a,b){(a,b){(a,b){(a,b){(a,b){(a,b)函数(a,b){(c c c c c c c,b,b,b,b,b,b)函数(a,b){(a,b,b,b){(a,b,b,b,b,b,b,b,b;2;2)为(h-=2)为(h;2)为(2)为(2)为(b)为(6)为(6==h和(h和(h,b)为(h ,(a,b)为(a,b)为(a,b)为(h和h,b)为(a,b和(h-;,(b)为(a,b)为(h 124;this.moduleCount=8*l)break;g.put(b.PAD1,8)}返回b.createBytes(g,e)}目前,e=0,e=0,g=新阵列(b.长度),h=新阵列(b.长度),h=新阵列(b.长度),j=0,j=0;j=0;j=0;j=0;j=0;j=0;j=0;j=0;j=0;j=0;b | e | i>=b 124 \| i>=b | | | | | i |(0!=0 124\124\124; 0 124; 0 124; 0 \124; 0 | 0 | 0 124; 0!0 | 0!0 | 0!=0!=0)i)i)i)和g&g isDark(d+1,e)和&j++,a.isDark(d,e+1)和&j++,a.isDark(d+1,e+1)和&j++,(0==j | 4==j)和&(c++=3)for(var d=0;b>d;d++)for(var e=0;b-6>b-6>e++)e++)e++)e++)a.ISDAK(d,e+1)和a.ISDAK(d,e+2)和a.ISDAK(d,e+3)和a.ISDAK(d,b-6)和b.ISDAK(d,b+e)和a.ISDAK(d,e+1)和a.ISDAK(d,e+1)和a.ISDAK(d(d,e+1和(d,e+1+e+1)和(d,e+6和(c+6和(c++(c+6)和(c=40)和(c++;为(c++);对于(var e=0.e=e=0;对于(e=e=0;对于(0;e=0;b=0;b=0;b=0;b>e;b>e>e>e;b>e;e;e 3,e)和a.isDark(d+4,e)和a.isDark(d+5,e)和a.isDark(d+6,e)和c++=40);对于(var k=0,e=0;b>e;e++)(10*k/b/b/b-50)/5;返回c++=10*l}}},5;返回c+=10*l}},g=g={{c=10*l},g={{c=10*l},g={g:功能(a)d++(d)d++)d++)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)d)u表[h]=1h;h++)g.LOG\u表[g.EXP_TABLE[h]=h;i.prototype={get:function(a){return this.num[a]},getLength:function(){return this.num.length},multiply:function(a){for(var b=new Array(this.getLength()+a.getLength()-1),c=0;c7-a%8)},put:function(a,b){for(var c=0;b>c;b>c;c++)this.putBit(1==(1&a>>b-c-1)),getLengthInBits:return this.putthinbit=bit,函数}{var b=Math.floor(this.length/8);this.buffer.length>>this.length%8),this.length++};var l=[[17,14,11,7],[32,26,20,14],[53,42,32,24],[78,62,46,34],[106,84,60,44],[134106,74,58],[154122,86,64],[192152108,84],[230180130,98],[27121315119],[32125117177137],[367287203155],[425241171331177],[45628322192155],[4522192220],[586,450,322,250],[644,504,364,280],[718,560,394,310],[792,624,442,338],[858,666,482,382],[929,711,509,403],[1003,779,565,439],[1091,857,611,461],
<head>
  <title>Cross-Browser QRCode generator for Javascript</title>
  <script type="text/javascript" src="qrcode.js"></script>
</head>

<body>
  <div id="qrcode" style="width:100px; height:100px; margin-top:15px;"></div>
  <script type="text/javascript">
    var qrcode = new QRCode(document.getElementById("qrcode"), {
      width: 100,
      height: 100
    });

    qrcode.makeCode("Hello World");
  </script>
</body>