将Google地图添加到元数据框中,地图具有内联样式高度=0

时间:2015-07-17 作者:dkmojo

我已经阅读了stack exchange上的几篇帖子,无法找出我做错了什么。

这是我的metabox回调:

<script type="text/javascript">

        function initMap() {
            var mapOpts = {
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                zoom: 14,
                center: { lat: 38.61687, lng: -90.219727 },
            };

            var map = new google.maps.Map(document.getElementById("map-canvas"), mapOpts);

        }//end initMap

        google.maps.event.addDomListener(window, "load", initMap);

        jQuery(window).load(function() {
            google.maps.event.trigger(map, "resize");
            console.log("Map Resized");
        });

        //38.61687,-90.219727
    </script>   

    <table width="100%" class="widefat">

    <tr>    
        <th scope="row"><label for="_latitude">Latitude:</label></th>
        <td><input type="text" name="_latitude" value="<?php print get_post_meta( $post->ID, \'_latitude\', true ); ?>" /> 
    </tr>

    <tr>
        <th scope="row"><label for="_longitude">Longitude:</label></th>
        <td><input type="text" name="_longitude" value="<?php print get_post_meta( $post->ID, \'_longitude\', true ); ?>" /></td>      
    </tr>

    </table>

    <h2>Map Below</h2>

    <div style="height:400px;width:800px;"><div id="map-canvas" width="100%" height="100%"></div></div>
我在某个地方读到,在创建元盒之前可能正在加载地图。所以我添加了地图。事件firebug控制台中显示的触发器,映射未定义/未定义。我的控制台。日志函数也不会显示在控制台中。

我知道我一定错过了一些很小的东西。Google API通过排队脚本挂钩加载到页面中。我正在挂接“add\\u meta\\u Box”操作以添加我的metabox。

非常感谢您的帮助。

编辑---------------------------------------------------------

我通过添加以下内容来解决此问题:

#map-canvas {
    height:100%!important;
}
到我包含的css文件。

1 个回复
SO网友:dkmojo

我不得不补充

#map-canvas {
    height:100%!;
}
到我的样式表。

结束

相关推荐

JQuery Plugins in Wordpress

我已经能够在某种程度上拼凑出应该如何做到这一点,但我真的很难做到这一点。我想使用Table Sorter插件(http://tablesorter.com) 在自定义页面模板中显示数据,但我不确定它是否正确。我已经钩住了“wp\\u enqueue\\u scripts”,并使用此函数将表分类器JS文件排入队列。我相信这是正确的,但是我还需要在JQuery Ready()函数中放置一行,但是我不确定如何从自定义页面模板中执行此操作。有人能解释一下吗?<?php /* Templat