jQuery('#qrcode').qrcode({ text: url, width: 200, height: 200 });var base64 = $("#qrcode img").attr("src").replace(/^data:image\/(png|jpg);base64,/, "");报错Uncaught TypeError: Cannot read properties of undefined (reading 'replace')
时间: 2024-02-20 19:02:23 浏览: 208
这段代码中出现了一个错误,其原因可能是二维码还没有生成完毕,导致无法获取`$("#qrcode img").attr("src")`的值。
你可以使用`jQuery('#qrcode').find("img").on('load', function() {})`来等待二维码图片加载完毕后再获取其值。修改后的代码如下:
```
jQuery('#qrcode').qrcode({
text: url,
width: 200,
height: 200
});
jQuery('#qrcode').find("img").on('load', function() {
var base64 = $("#qrcode img").attr("src").replace(/^data:image\/(png|jpg);base64,/, "");
// 在这里可以对base64进行操作
});
```
这样代码就可以等待二维码图片加载完毕后再获取其值,避免了出现"Cannot read properties of undefined"的错误。
相关问题
这样写之后再调用base64变量就报错base64 is not defined
如果在`jQuery('#qrcode').find("img").on('load', function() {})`中声明`base64`变量,那么它的作用域就只在这个函数内部。如果你在函数外部调用`base64`变量,就会报`base64 is not defined`的错误。
为了避免这个问题,你可以在函数外部先声明`base64`变量,然后在函数内部给它赋值。修改后的代码如下:
```
var base64;
jQuery('#qrcode').qrcode({
text: url,
width: 200,
height: 200
});
jQuery('#qrcode').find("img").on('load', function() {
base64 = $("#qrcode img").attr("src").replace(/^data:image\/(png|jpg);base64,/, "");
// 在这里可以对base64进行操作
});
// 在这里调用base64变量
```
这样就避免了`base64 is not defined`的错误。注意,在函数外部调用`base64`变量时,需要等待二维码图片加载完毕后才能使用它,否则它的值可能还没有被赋上。
阅读全文