pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<small id='Vd9GD'></small><noframes id='Vd9GD'>

<legend id='Vd9GD'><style id='Vd9GD'><dir id='Vd9GD'><q id='Vd9GD'></q></dir></style></legend>

    <tfoot id='Vd9GD'></tfoot>

      • <bdo id='Vd9GD'></bdo><ul id='Vd9GD'></ul>

      1. <i id='Vd9GD'><tr id='Vd9GD'><dt id='Vd9GD'><q id='Vd9GD'><span id='Vd9GD'><b id='Vd9GD'><form id='Vd9GD'><ins id='Vd9GD'></ins><ul id='Vd9GD'></ul><sub id='Vd9GD'></sub></form><legend id='Vd9GD'></legend><bdo id='Vd9GD'><pre id='Vd9GD'><center id='Vd9GD'></center></pre></bdo></b><th id='Vd9GD'></th></span></q></dt></tr></i><div class="8hisgzs" id='Vd9GD'><tfoot id='Vd9GD'></tfoot><dl id='Vd9GD'><fieldset id='Vd9GD'></fieldset></dl></div>

        html2canvas 捕獲除內(nèi)部畫布內(nèi)容之外的所有內(nèi)容

        html2canvas captures everything except the content of an inner canvas(html2canvas 捕獲除內(nèi)部畫布內(nèi)容之外的所有內(nèi)容)

        <small id='PKwWA'></small><noframes id='PKwWA'>

        <tfoot id='PKwWA'></tfoot>
          <tbody id='PKwWA'></tbody>
        1. <i id='PKwWA'><tr id='PKwWA'><dt id='PKwWA'><q id='PKwWA'><span id='PKwWA'><b id='PKwWA'><form id='PKwWA'><ins id='PKwWA'></ins><ul id='PKwWA'></ul><sub id='PKwWA'></sub></form><legend id='PKwWA'></legend><bdo id='PKwWA'><pre id='PKwWA'><center id='PKwWA'></center></pre></bdo></b><th id='PKwWA'></th></span></q></dt></tr></i><div class="2zy83cl" id='PKwWA'><tfoot id='PKwWA'></tfoot><dl id='PKwWA'><fieldset id='PKwWA'></fieldset></dl></div>
          • <bdo id='PKwWA'></bdo><ul id='PKwWA'></ul>

                  <legend id='PKwWA'><style id='PKwWA'><dir id='PKwWA'><q id='PKwWA'></q></dir></style></legend>
                  本文介紹了html2canvas 捕獲除內(nèi)部畫布內(nèi)容之外的所有內(nèi)容的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                  問題描述

                  我有一張通過leaflet 渲染的地圖.

                  I've got a map rendered by means of leaflet.

                  我需要使用 html2canvas 對該地圖進(jìn)行截圖.

                  I need to make a screenshot of that map by using html2canvas.

                  要使用html2canvas,我需要提供一個要捕獲的DOM 元素(elementToCapture)和一個可選配置(??html2canvasConfiguration).

                  To make use of html2canvas, I need to provide a DOM element to capture (elementToCapture) and an optional configuration (html2canvasConfiguration).

                  var html2canvasConfiguration = {
                      useCORS: true,
                      width: map._size.x,
                      height: map._size.y,
                      backgroundColor: null,
                      logging: true,
                      imageTimeout: 0
                  };
                  
                  var elementToCapture = map._container.getElementsByClassName('leaflet-pane leaflet-map-pane')[0];
                  html2canvas(elementToCapture, html2canvasConfiguration).then(function (canvas) {
                      var link = document.createElement('a');
                      link.download = 'test.png';
                      link.href = canvas.toDataURL();
                      link.click();
                      link.remove();
                  })
                  

                  我通過 leaflet-pane leaflet-map-pane 類提取了一個元素,它基本上代表了整個地圖,包括控件(放大/縮小按鈕、比例等)、自定義標(biāo)記、工具提示、疊加層、彈出窗口.

                  I extract an element by the leaflet-pane leaflet-map-pane class, which basically represents the whole map including controls (zoom in/out buttons, scale, etc), custom markers, tooltips, overlays, popups.

                  整個 DOM 看起來像

                  The entire DOM looks like

                  <div class="leaflet-pane leaflet-map-pane">
                      <div class="leaflet-pane leaflet-tile-pane">
                          <div class="leaflet-gl-layer mapboxgl-map">
                              <div class="mapboxgl-canvas-container">
                                  <canvas class="mapboxgl-canvas leaflet-image-layer leaflet-zoom-animated"></canvas>
                              </div>
                              <div class="mapboxgl-control-container"></div>
                          </div>
                      </div>
                      <div class="leaflet-pane leaflet-shadow-pane"></div>
                      <div class="leaflet-pane leaflet-overlay-pane"></div>
                      <div class="leaflet-pane leaflet-marker-pane"></div>
                      <div class="leaflet-pane leaflet-tooltip-pane"></div>
                      <div class="leaflet-pane leaflet-popup-pane"></div>
                  <div class="leaflet-control-container"></div>
                  

                  我遇到的問題是 leaflet-pane leaflet-tile-pane 元素(尤其是內(nèi)部 canvas 的內(nèi)容)沒有被 <捕獲代碼>html2canvas.簡而言之,我在地圖上看到的所有內(nèi)容,但我看不到地圖本身.

                  The problem I've faced is the leaflet-pane leaflet-tile-pane element (particularly the content of the inner canvas) doesn't get captured by html2canvas. To put it simply, I see everything on the map, but I don't see the map itself.

                  更新 1:

                  我目前使用的版本是1.0.0-rc.1(最新的).

                  The version I am currently using is 1.0.0-rc.1 (the latest one).

                  更新 2:

                  畫布的本質(zhì)是webgl.可能是問題嗎?根據(jù) this,他們確實支持 webgl 畫布.

                  The nature of the canvas is webgl. Might it be the issue? According to this, they do support webgl canvases.

                  更新 3:

                  我嘗試以編程方式獲取畫布并在其上調(diào)用 toDataURL.即使使用 preserveDrawingBuffer hack,它也會導(dǎo)致屏幕截圖為空.

                  I tried to obtain the canvas programmatically and call toDataURL on it. It resulted in an empty screenshot, even with the preserveDrawingBuffer hack.

                  更新 4:

                  奇怪的是,它不僅僅捕捉某些畫布.我創(chuàng)建了一個 2d 畫布(通過將 preferCanvas 添加到地圖配置)并顯示出來了.

                  Oddly enough, it doesn't capture only certain canvases. I've created a 2d canvas (by adding preferCanvas to map configuration) and it got shown.

                  推薦答案

                  試試這個,將它添加到頁面頂部,在任何其他腳本之前

                  Try this, add this to the top of your page, before any other scripts

                  <script>
                  HTMLCanvasElement.prototype.getContext = function(origFn) {
                    return function(type, attribs) {
                      attribs = attribs || {};
                      attribs.preserveDrawingBuffer = true;
                      return origFn.call(this, type, attribs);
                    };
                  }(HTMLCanvasElement.prototype.getContext);
                  </script>
                  

                  有幫助嗎?

                  這篇關(guān)于html2canvas 捕獲除內(nèi)部畫布內(nèi)容之外的所有內(nèi)容的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  Check if a polygon point is inside another in leaflet(檢查一個多邊形點是否在傳單中的另一個內(nèi)部)
                  Changing leaflet markercluster icon color, inheriting the rest of the default CSS properties(更改傳單標(biāo)記群集圖標(biāo)顏色,繼承其余默認(rèn) CSS 屬性)
                  Trigger click on leaflet marker(觸發(fā)點擊傳單標(biāo)記)
                  How can I change the default loading tile color in LeafletJS?(如何更改 LeafletJS 中的默認(rèn)加載磁貼顏色?)
                  Add external geojson to leaflet layer(將外部geojson添加到傳單層)
                  Adding Leaflet layer control to sidebar(將 Leaflet 圖層控件添加到側(cè)邊欄)

                  <small id='8RpUJ'></small><noframes id='8RpUJ'>

                  1. <i id='8RpUJ'><tr id='8RpUJ'><dt id='8RpUJ'><q id='8RpUJ'><span id='8RpUJ'><b id='8RpUJ'><form id='8RpUJ'><ins id='8RpUJ'></ins><ul id='8RpUJ'></ul><sub id='8RpUJ'></sub></form><legend id='8RpUJ'></legend><bdo id='8RpUJ'><pre id='8RpUJ'><center id='8RpUJ'></center></pre></bdo></b><th id='8RpUJ'></th></span></q></dt></tr></i><div class="vzriztr" id='8RpUJ'><tfoot id='8RpUJ'></tfoot><dl id='8RpUJ'><fieldset id='8RpUJ'></fieldset></dl></div>

                      1. <legend id='8RpUJ'><style id='8RpUJ'><dir id='8RpUJ'><q id='8RpUJ'></q></dir></style></legend>
                        • <bdo id='8RpUJ'></bdo><ul id='8RpUJ'></ul>
                              <tbody id='8RpUJ'></tbody>
                            <tfoot id='8RpUJ'></tfoot>

                          • 主站蜘蛛池模板: 蜘蛛车-高空作业平台-升降机-高空作业车租赁-臂式伸缩臂叉装车-登高车出租厂家 - 普雷斯特机械设备(北京)有限公司 | 北钻固控设备|石油钻采设备-石油固控设备厂家 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 聚合氯化铝-碱式氯化铝-聚合硫酸铁-聚氯化铝铁生产厂家多少钱一吨-聚丙烯酰胺价格_河南浩博净水材料有限公司 | 上海办公室装修_上海店铺装修公司_厂房装潢设计_办公室装修 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 变频器维修公司_plc维修_伺服驱动器维修_工控机维修 - 夫唯科技 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 七维官网-水性工业漆_轨道交通涂料_钢结构漆 | 动物麻醉机-数显脑立体定位仪-北京易则佳科技有限公司 | 综合管廊模具_生态,阶梯护坡模具_检查井模具制造-致宏模具厂家 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 「阿尔法设计官网」工业设计_产品设计_产品外观设计 深圳工业设计公司 | 丹佛斯变频器-丹佛斯压力开关-变送器-广州市风华机电设备有限公司 | 尾轮组_头轮组_矿用刮板_厢式刮板机_铸石刮板机厂家-双驰机械 | 火锅加盟_四川成都火锅店加盟_中国火锅连锁品牌十强_朝天门火锅【官网】 | 元拓建材集团官方网站| 优秀的临床医学知识库,临床知识库,医疗知识库,满足电子病历四级要求,免费试用 | 多物理场仿真软件_电磁仿真软件_EDA多物理场仿真软件 - 裕兴木兰 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 外贸资讯网 - 洞悉全球贸易,把握市场先机 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 | 污水处理设备,一体化泵站,一体化净水设备-「梦之洁环保设备厂家」 | 重庆私家花园设计-别墅花园-庭院-景观设计-重庆彩木园林建设有限公司 | 国产频谱分析仪-国产网络分析仪-上海坚融实业有限公司 | 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 硫酸钡厂家_高光沉淀硫酸钡价格-河南钡丰化工有限公司 | 十二星座查询(性格特点分析、星座运势解读) - 玄米星座网 | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 内窥镜-工业内窥镜厂家【上海修远仪器仪表有限公司】 | 电主轴,车床电磨头,变频制动电机-博山鸿达特种电机 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | 幂简集成 - 品种超全的API接口平台, 一站搜索、试用、集成国内外API接口 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 深圳天际源广告-形象堆头,企业文化墙,喷绘,门头招牌设计制作专家 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 广州二手电缆线回收,旧电缆回收,广州铜线回收-广东益福电缆线回收公司 | 苏州工作服定做-工作服定制-工作服厂家网站-尺品服饰科技(苏州)有限公司 | 新能源汽车教学设备厂家报价[汽车教学设备运营18年]-恒信教具 | 安徽免检低氮锅炉_合肥燃油锅炉_安徽蒸汽发生器_合肥燃气锅炉-合肥扬诺锅炉有限公司 | 工作心得_读书心得_学习心得_找心得体会范文就上学道文库 |