使用传单工具显示地图到wordpress时出错(未捕获错误:未找到地图容器)

时间:2017-05-14 23:14:03

标签: javascript wordpress leaflet

我正在尝试插入传单javascript以显示来自mapserver的地图,我尝试了以下代码,但是我收到了这个错误:

let indexPath = NSIndexPath(forRow: rowNumber, inSection: 0)
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Top)

我确实搜索了一些教程,但我没有找到wordpress的内容,所以我不知道我该怎么做才能解决这个问题。 这是我用于在Uncaught Error: Map container not found. at e._initContainer (leaflet.js?ver=1:6) at e.initialize (leaflet.js?ver=1:6) at new e (leaflet.js?ver=1:6) at Object.o.map (leaflet.js?ver=1:6) at script1.js?ver=1:3 中插入js和css传单文件的代码:

functions.php

script1.js:

function add_js_scripts() {
wp_enqueue_script('script-leaflet-js', 'http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js',array() ,true);
wp_enqueue_style( 'script-leaflet-css','http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.css',array(),true);
wp_enqueue_script( 'script-leaflet-map', get_template_directory_uri().'/script1.js', array(), true );}
add_action('wp_enqueue_scripts', 'add_js_scripts');

这是我在页面中插入的代码:

        var map = L.map('mapid').setView([29, -6.8644], 5); 
L.tileLayer.wms("http://localhost:81/cgi-bin/mapserv.exe?map=/wamp64/www/wordpress/map1.map", {
            layers: 'map1',
            format: 'image/png',
            transparent: true,
            attribution: "Dan's Amazing Roads",
            maxZoom: 18,
            minZoom: 12,
        }).addTo(mapid);

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试在DOM准备就绪时加载

由于$in_footer的{​​{1}}参数为真。 它在wp_enqueue_script()动作中排队,通常在身体标签结束之前,并且将在最后读取,然后在dom准备就绪时调用。

Doc:wp_enqueue_script

wp_footer()

另一种方法,所有浏览器(旧IE除外)

(function()
{
   var map = L.map('mapid').setView([29, -6.8644], 5); 
   L.tileLayer.wms("htt....
})();