将 jQuery 变量传递给 javascript

Passing jQuery variable to javascript

我在 jquery 和 javascript 互操作性方面遇到了一些问题。

我有一段代码尝试从 canvas 创建 PNG 并将其写入变量。

jQuery.getScript('https://api.tiles.mapbox.com/mapbox-gl-js/v0.44.1/mapbox-gl.js', function() {
    //script is loaded and executed put your dependent JS here
    mapboxgl.accessToken = '<ACCESS_TOKEN>';
    var mapcanvas = new mapboxgl.Map({
        container: 'mapimg',
        style: 'mapbox://styles/mapbox/streets-v9',
        lon: center[1].toFixed(6),
        lat: center[0].toFixed(6),
        zoom: zoominfo.zoom,
        preserveDrawingBuffer: true
    });

    var getbasemapimg = mapcanvas.getCanvas().toDataURL('image/png');
    alert("Inside jQuery: " + getbasemapimg);
});

这在上面的 jQuery 部分(警报 returns getbasemapimg 以其 base64 字符串格式)内工作正常,但在脚本中,我尝试调用 getbasemapimg 变量,这次它说它是未定义的:getbasemapimg is not defined

我不得不在 jQuery 中结束第一部分,因为它正在调用外部 javascript 源,我可以弄清楚如何在不使用 jQuery 的情况下让它工作。

我想我需要全局设置值 getbasemapimg,但不知道如何设置。

您需要在您的范围内访问 mapboxgl。在通过 Ajax 请求库后,您的代码将作为回调调用。您可以在您的 index.html 中通过标签在您自己的代码之前添加该库,作为解决问题的简单方法。