javascript - 跨源安全错误

标签 javascript jquery html5-canvas cross-domain webgl

我正在尝试制作一个用户脚本,允许玩家在本地浏览器上显示他的玩家的自定义风格。游戏中返回天赋纹理的函数会创建一个 Canvas ,获取包含所有天赋的天赋图像的右侧部分,然后从中生成 PIXI 纹理。每当我尝试将自己的 PIXI 纹理分配给播放器(其来源是 imgur 上的图片)时,我都会收到错误:

Uncaught SecurityError: Failed to execute 'texImage2D' on 'WebGLRenderingContext': Tainted canvases may not be loaded.

有人知道是否有办法解决这个问题吗?

上下文:这是天赋纹理函数:

tagpro.renderer.getFlairTexture = function(e, t) {
    var n = PIXI.TextureCache[e];
    if (!n) {
        var r = document.createElement("canvas");
        r.width = 16, r.height = 16;
        var i = r.getContext("2d");
        i.drawImage($('#flair').get(0), t.x * 16, t.y * 16, 16, 16, 0, 0, 16, 16), n = PIXI.Texture.fromCanvas(r), PIXI.TextureCache[e] = n
    }
    return n
}

其中 $("#flair").get(0) 只是一个图像,其来源来自实际游戏网站 ( http://static.koalabeast.com/images/flair.png )。

最佳答案

尝试一下:

var img = $('#flair').get(0);
img.crossOrigin = "Anonymous";
i.drawImage(img, t.x * 16, t.y * 16, 16, 16, 0, 0, 16, 16);

关于javascript - 跨源安全错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38156921/

相关文章:

javascript - 带下拉菜单的响应式水平菜单

javascript - OpenLayers4 : How to give icon a bigger click radius

javascript - 有没有办法在文本框上手动调用 "Enter key"事件?

jquery - 使用单选按钮显示/隐藏内容

jquery - 如何逐行查找div中的字符数?

javascript - 如何使用html5将网格绘制成圆形

Javascript onchange 选择框

javascript - 使用 JQUERY 显示 JSON 数据中的键和标签

html5 - 如何检查在 Canvas 上绘制的形状?

javascript - 事件监听器和 Canvas