相关疑难解决方法(0)

html2canvas生成的图像没有在图表中选择svg

我在我的应用程序中使用了svg图标并使用了svg来绘制图表.当我使用html2canvas生成图像时,所有svgs都被忽略并且生成的图像没有所有svgs.

我正在使用下面的函数来生成图像.

function svgToCanvas (targetElem) {
        var nodesToRecover = [];
        var nodesToRemove = [];

        var svgElem = targetElem.find('svg');

        svgElem.each(function(index, node) {
            var parentNode = node.parentNode;
            var svg = parentNode.innerHTML;

            var canvas = document.createElement('canvas');

            canvg(canvas, svg);

            nodesToRecover.push({
                parent: parentNode,
                child: node
            });
            parentNode.removeChild(node);

            nodesToRemove.push({
                parent: parentNode,
                child: canvas
            });

            parentNode.appendChild(canvas);
        });

        html2canvas(targetElem, {
            allowTaint: true,
            onrendered: function(canvas) {
                // var ctx = canvas.getContext('2d');
                // ctx.webkitImageSmoothingEnabled = false;
                // ctx.mozImageSmoothingEnabled = false;
                // ctx.imageSmoothingEnabled = false;

                var img_PNG = Canvas2Image.saveAsPNG(canvas);
            }
        }); …
Run Code Online (Sandbox Code Playgroud)

html javascript jquery svg html2canvas

1
推荐指数
1
解决办法
2605
查看次数

使用函数切换布尔值?

我想创建一个函数来切换我的代码的任何布尔值,但我无法得到预期的结果:

function toggle(x){
  x=!x;
}
var test=false;
toggle(test);
alert(test);
Run Code Online (Sandbox Code Playgroud)

为什么不回归true呢?

javascript

1
推荐指数
1
解决办法
3101
查看次数

是否可以从javascript中的函数内部定义全局常量变量?

我想做这样的事情:

function defineGlobalConst(){
     const s = 10;
}
Run Code Online (Sandbox Code Playgroud)

但我想从代码中的任何地方访问变量 s,因为我没有输入“const”

javascript

1
推荐指数
1
解决办法
97
查看次数

传递给函数的数组不会变异?

我认为Arrays是对象所以当我执行这行代码时,我期待得到[3,3,3]因为我改变了数组.但是我得到了[2,4,6]

var arr = [2,4,6];

function checkArr(arr){
    arr = [3,3,3];
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

如果我添加一个return语句,那么我得到了我期望的值.我想知道为什么在执行函数期间给arr一个新值时需要返回.

var arr = [2,4,6];

function checkArr(arr){
    arr = [3,3,3];
  return arr;
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

最后,在这个for循环中我不使用,return并且数组值被更改!我有点困惑.为什么第一个例子没有改变值arr

var arr = [2,4,6];

function checkArr(arr){
    for(var i = 0; i<arr.length; i++){
    arr[i] = 3
  }
}

console.log(arr)
Run Code Online (Sandbox Code Playgroud)

javascript arrays pass-by-reference

0
推荐指数
1
解决办法
168
查看次数

返回没有引用的javascript函数

在下面的代码中,我预计3个日志的结果将是相同的.

但他们不是.

var m = (function () {
  var arr = [
    {a: 1, b: 2}, 
    {c: 3, d: 4}
  ];

  return {
    getArr: function () {
      return arr;
    }
  };
})();

var myArr = m.getArr();

console.log(myArr);

myArr.pop();

console.log(m.getArr());
Run Code Online (Sandbox Code Playgroud)

确保数组不作为引用传递的最佳方法是什么?

return arr.map()吗?

javascript

0
推荐指数
1
解决办法
81
查看次数

标签 统计

javascript ×5

arrays ×1

html ×1

html2canvas ×1

jquery ×1

pass-by-reference ×1

svg ×1