根据iframe页面的大小动态调整页面(兼容IE6及以上版本 chrome 火狐)

HTML5音频控制实战:突破autoplay限制与跨端兼容方案 HTML5音频并非仅靠<audio>标签即可稳定运行,其本质是一套受用户手势、浏览器策略和音频上下文状态严格约束的媒体机制。理解HTMLMediaElement状态机、autoplay触发条件、preload资源策略及跨终端解码差异,是实现可靠播放的基础。Web Audio API提供更精细的音量控制、无缝循环与淡入淡出能力,而混合使用原生标签承载资源、JavaScript API掌控行为,可兼顾兼容性与可控性。本文聚焦教育类应用等真实场景,详解iOS Safari手势解锁、Android循环失 阅读详情

前一段时间在一个jsp页面中加载一个html页面,通过使用iframe加载html页面,但是在动态调整iframe的大小时无法兼容各个浏览器,后来在网上找到针对各个流浪器对iframe进行动态调整的代码,并将代码进行了整合,现在使用下面方法可以完美的兼容各个浏览器。

<iframe style=" position:absolute; left:330px; top:200px " width="750px" frameBorder="0" frameSpacing="0" scrolling="no" marginHeight="0" marginWidth="0" src="http://localhost:8080/web/doc/index.html" id="rightContent" name="rightContent" onload="reinitIframe()"></iframe>

function reinitIframe(){

var iframe = document.getElementById("rightContent"); 
var iframeDocument = null;
//safari和chrome都是webkit内核的浏览器,但是webkit可以
if (iframe.contentDocument)
{ 
//ie 8,ff,opera,safari
iframeDocument = iframe.contentDocument;
} 
else if (iframe.contentWindow) 
{ 
// for IE, 6 and 7:
iframeDocument = iframe.contentWindow.document;
} 
if (!!iframeDocument) {
iframe.width=iframeDocument.documentElement.scrollWidth+"px";
iframe.height=iframeDocument.documentElement.scrollHeight+"px";
} else {
//for chorme
var bHeight = iframe.contentDocument.body.scrollHeight;
var dHeight = iframe.contentDocument.documentElement.scrollHeight;
var height = Math.max(bHeight, dHeight);
iframe.height =  height;
} 
}
word2vector入门教程 摘要: 网上已经有许多对w2v的介绍了,这里只是做一个简单的概括。下面这篇文章我认为是关于W2V写的比较好的文章,读者有兴趣可以先参考一下: w2v参考文章1 另外一篇是关于Skip-Gram和CBow的介绍。 Skip-Gram&CBOW 逻辑比较清晰的综述文章: 综述文章 数学原理很清晰很短的一篇文章(也有关于负采样的简单说明) 参考文章 1.什么 阅读详情

相关推荐

Xilinx UltraScale+系列FPGA实现USB3.0 DEV 设备 部分原理图+代码分享

Zynq UltraScale+ MPSoC 系列是 Xilinx 新一代 Zynq 平台。在 FPGA 里有完整的 ARM 处理(PS),包含了四核或双核 Cortex-A53 处理器 ,处理器子系统中有DDR内存控制器等大量的外设,在FPGA中完全独立于可编程逻辑单元(PL)如果暂时没有用到PL部分,PS也能单独工作,相当于可以当成一个ARM来用了(以前的不行)。 ARM也包含USB3.0控制器,这是实现USB3.0DEV的关键,根据官方手册(ug1085)描述,USB主(Host)从(Device)

Pierre 1万+

iframe框架取值兼容ie/firefox/chrome的写法

为啥世上会有这么多不同的浏览器?每次遇到js/css的浏览器兼容性问题,总是要发出这样的感叹,真希望这些个浏览器公司全部倒下,然后只留下一家(显然这是一个不可能实现的美好愿望),言归正传,看代码吧: iframe框架内页: &lt;html&gt;&lt;head&gt;    &lt;title&gt;框架内页&lt;/title&gt;&lt;/head&gt;&lt;body&gt;...

weixin_33774883的博客 228

Python | 集合(set)运算之intersection()

简介 在做力扣题的时候,有一个思路是要求解两个字符串的交集。 一般来说,求解交集的思路是遍历两个字符串,判断有无相等,有相等则添加到交集中,直到循环结束。 但是这样做,会增加很多的不必要的遍历:比如说,当一个字符串中有多个相同的元素时,该元素会被遍历多次。 因此,在求解时,我们可以先将字符串转换为set集合类型。集合中存储的元素没有顺序,且互异(即元素不可重复)。 算例 求字符串m“abcdaaa” 与 字符串n“bcddses”是否存在交集 首先将字符串转换为set类型: m = set(m) n

lovetaozibaby的博客 1万+

杂记从iframe自适应高度实现及引出的几个ie问题的特殊处理

因为这是项目之后写的博客,因此这里只描述性的点出问题及解决的办法。 1、为了实现iframe动态加载页面并自适应高度,且兼容ie、FF、Chrome浏览器。以下为代码片段(引入Jquery):       $jq("#frametd").html('&lt;iframe name="MainContent" id="MainContent'+i+'" allowtransparency=...

truemylife 227

宇树机器狗go2—slam建图(1)点云格式

上一篇番外文章教大家如何在宇树机器狗go2的gazebo仿真环境中实现简单的导航运动,本期文章会教大家如何让宇树的机器狗go2在仿真环境中进行slam建图时经常会遇到的一些点云格式,在后续的slam建图和slam算法解析的时候会经常与这些点云信息打交道。宇树机器狗go2仿真会作为一个长期项目来进行不定期更新,仿真不只限于在gazebo上实现,后面还会在isaac sim等仿真平台上教大家如何搭建,其目的还是帮助各位都能以较低的成本加入到宇树机器狗go2的学习中。

古月居 3272

ArcMap学习笔记(三)地图数字化

地图数字化前言地图数字化实现步骤1.加载地形图2.新建要素图层3.开启编辑环境4.设置捕捉环境5.选择数字化图层6.数字化控制点7.数字化等高线8.数字化图幅边框9.保存数字化成果总结 前言 使用软件:ArcMap10.4.1中文版 如果出现侵权,请在评论留言,我会及时删除,谢谢。 地图数字化 空间数据采集(输入)是将现有的地图、外业观测成果、航空像片、遥感图片数据、文本资料等转换成GIS可以直接...

JayWang博客 1万+

使用pdfjs提供的viewer.html和iframe加载pdf文件,如何打开指定页的解决办法

最近项目中有一个需求,要打开某编辑界面的时候,默认打开pdf已设置过得页码,百度的时候有几个答案是直接改viewer.js的源码来实现这个需求,也有的是通过canvas来实现的,但今天我发现了一个最简单的方法来实现: 就是直接在地址后面加上#page=指定的页码 就可以了 &lt;iframe ref="iframe" v-if="pdfSrc != ''" :src="'/static/pd...

蒲小若的博客 1万+

【TI毫米波雷达】IWR6843AOPEVM-G与DCA1000EVM实战:从硬件连接到数据流解析

本文详细解析了TI毫米波雷达开发套件IWR6843AOPEVM-G与DCA1000EVM的硬件连接、模式配置及数据流处理全流程。针对官方手册中的常见配置错误,提供了避坑指南和实测验证的正确设置方法,包括开关配置、网络参数等关键步骤。通过mmWave Studio软件配置雷达参数,并深入解析数据采集与处理流程,帮助开发者高效实现毫米波雷达应用开发。

weixin_30653023的博客 368

Chrome下的iframe高度自适应问题

萌新最近在写点东西练手,就碰到了这个问题。 这是我的iframe: <iframe frameborder="0" id="myiframe" name="contentIframe" class="mainContent" src="WebLearning/1.html" scrolling="no" onload="this.height=this.contentWindow.docum...

weixin_43088751的博客 834

山东大学机试试题合集

山东大学机试试题合集

qq_63349644的博客 2622

ESP32-IDF开发之旅 基础篇⑨ ESP-IDF的FreeRTOS任务间通信和同步

本文介绍了FreeRTOS任务间通信中的队列机制,重点讲解了队列的创建、发送和接收数据的API使用方法。文章提供了详细的技术说明和示例代码,包括xQueueCreate、xQueueSend、xQueueReceive等核心函数的参数说明和返回值解释。通过一个2生产者+1消费者的实际案例,展示了如何在ESP-IDF环境下使用FreeRTOS队列实现任务间通信。示例中包含了数据发送失败处理和接收数据验证等实用技巧,为开发者提供了可参考的实现模式。

单片机菜鸟哥的博客 428

js 让iframe自适应大小;测试IE8,火狐,Chrome可运行 .

iframe自适应大小 function reinitIframe(){ iframe = document.getElementById("frame1"); var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 try{ //var height = window.document

java生涯 1762

Python 爬虫实战:Boss直聘 Python 岗位招聘数据爬取

本文介绍了一个Python爬虫项目,用于抓取Boss直聘平台的Python岗位招聘数据并进行可视化分析。项目采用requests库发送POST请求,通过抓包分析获取JSON接口,绕过HTML解析直接获取结构化数据。主要内容包括: 接口分析:找到关键POST接口,解析请求头和JSON参数格式 环境准备:安装requests/pandas/matplotlib/pyecharts等依赖库 核心实现: 手动获取登录Cookie 构建请求头和城市代码映射 实现分页抓取职位列表数据 项目特色在于直接解析JSON接口而

u014481728的博客 297

火狐浏览器表单不跳转_火狐浏览器的表单问题,求解_html/css_WEB-ITnose -

我现在做的网页,作为外联CSS,引入到HTML里,火狐能正常解析,而IE6却大部分都不能解析CSS,预览时显示的就是原始的HTML文件;而当我把外联CSS放到HEAD里的里时,IE6和火狐又都能正常解析CSS了,到底是怎么回...最近创建表单发现如果表单中同时包括text和password的input标签,代码案例如下:Document在火狐浏览器中text会自动填充为aaa@bbb.com,密码...

weixin_39908588的博客 430

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

vue项目内嵌iframe,iframe如何自适应高度

【代码】vue项目内嵌iframe,iframe如何自适应高度。

MISS_zhang_0110的博客 3282

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

爬虫笔记整理6 - 动态渲染页面爬取总结

7.1 Selenium的使用 一、selenium介绍 一个自动化测试工具。 在爬虫中能做什么? 官网的说法: Selenium automates browsers. That’s it! What you do with that power is entirely up to you. 浏览器的自动化操作,你想干嘛就干嘛…就这么简单! 开源易用,支持多种语言 支持大部分主流的浏览器:fir...

Sevieryang/FinTech/Statistics/Quant 681

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

手机 html自动播放视频格式,Video 在网页和移动端无法自动播放问题??

标签介绍 标签定义视频,比如电影片段或其他视频流。支持三种视频格式:MP4、WebM、Ogg。是 H5 的新标签,使用如下://autoplay表示视频自动播放,controls表示显示视频控制器,loop表示循环播放您的浏览器不支持 video 标签。浏览器支持表格中的数字表示支持该属性的第一个浏览器版本号。Element谷歌IE火狐safariopera4.09.03.54.010.5提示和...

weixin_42118056的博客 2310

[JavaScript+DOM+CSS]:奇遇小结一二

写这篇目的,是想把在Web前端编程时遇到的一些“纳闷问题”记录下来;并将找到的解决方法及应对技巧总结归纳;以便以后查找使用。想来想去不知叫什么题目比较合适,就叫这个了。想以后遇到“纳闷问题都会补充进来吧”。也欢迎大家讨论,补充;把自己遇到的奇怪的前端问题贴出来。闲话不说了,这两天利用空闲之际想做个弹出层对话框。在这过程中遇到了几个问题,暂且先记下两个问题及解决方法。  问题一、想试图通过Java

Kevin.Chen - 专注前行 602

python+selenium的使用

selenium是一个web自动化测试工具,它支持多种浏览器:ie、ff、safari、opera、chrome,我目前使用比较多的就是chrome,selenium与chrome组合也是真的好用,当然有些兼容性不好的网站,也需要考虑使用IE或360等一些第三方浏览器,我最近遇到的一个项目就是网站不兼容google,必须考虑使用360浏览器(这个我也还在研究中) 环境配置 python我使用的是3.7,通过Anaconda进行安装的 浏览器:查看google版本(chrome://version),然后在

weixin_42558201的博客 637

1.前端入门:HTML+CSS

1.box-shadow: h-shadow v-shadow blur spread color inset; h-shadow 必需。水平阴影的位置。允许负值。 v-shadow 必需。垂直阴影的位置。允许负值。 blur 可选。模糊距离。 spread 可选。阴影的尺寸。 color 可选。阴影的颜色。请参阅 CSS 颜色值。 inset 可选。将外部阴影 (outset) 改为内部阴影。 ......

zxz86的博客 367

强制设置IE浏览器的版本模式

1. 通过在页面head标签中添加该属性来进行设置; 2.对于页面中引入了公共JSP页面的需要在公共JSP页面中也进行设置:                var path = "${ctxPath}"; var cognosPath = "${cognosPath}"; 3.对于iframe或者frame加载的页面也需要进

huwenhu2007的专栏 1万+

设置ie浏览器版本问题

需要在&lt;head&gt;里面设置一下  &lt;meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible"&gt; 类似于这样一行代码,就设置了ie的版本

gbh666666的博客 549

iframe放大显示_iframe操作 调整大小

在我们做网页的时候,经常会用到iframe,它很向asp.net中的母板,但是比母板更加的灵活好用。在配合jquery后,会实现很强大的效果,像Tab控件的效果啊等等。第一篇开发经验笔记,还是不说那么多了。进入主题。我们根据不同的单击焦点在同一个iframe中打开不同的网页时,往往都需要去动态的改变iframe的大小。我们都知道去改变它的height,但是往往得不到想要的效果。先说说几种实现的方法...

weixin_42361478的博客 4391

iframe内部页面缩放

iframe内部页面缩放

qq_43862878的博客 3701

调整iframe的大小以适合内容(仅限同一域)

通常,您为iframe设置宽度和高度。 如果里面的内容更大,滚动条就足够了。 下面的脚本试图通过动态调整iframe的大小以适应其加载的内容来解决此问题。 <script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'>&l...

CSS 初学者指南 2398

浏览器尺寸调节后调整iframe的大小

layer_full('详情', 'detail.html'); function layer_full(title, url) { var index = layer.open({ type: 2, title: title, content: url }); layer_index = index; lay...

july_young的博客 1670
lp_sinper
博客等级 码龄15年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值