javascript - getRelevantGoogleReviews 不是 WordPress 中的函数错误,但可以在 Localhost 中使用

标签 javascript wordpress google-maps google-maps-api-3

我正在使用谷歌地图在我的网站中放置 JavaScript 库,以检索我的商店的评论和评级,我在本地主机中测试了它,一切正常,但是当我在我的 WordPress 网站中使用代码时,我收到一条错误消息 < em>getRelevantGoogleReviews 不是一个函数 我什至尝试为我的网站设置 3 秒的超时来获取评论,但它不起作用。知道为什么吗?

    <!doctype html>
<html>

<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>

<body>
    <ul class="reviews__content" id="reviews__content">
    </ul>
    <div id="service-helper"></div>


    <script async defer src="https://maps.googleapis.com/maps/api/js?key=MY_API_KEY&libraries=places&callback=getRelevantGoogleReviews">
    </script>


    <script type="text/javascript">
    window.getRelevantGoogleReviews = function() {
        var service = new google.maps.places.PlacesService($('#service-helper').get(0)); // note that it removes the content inside div with tag '#service-helper'

        service.getDetails({
            placeId: 'ChIJ0YnbDpIUrjsRUiJwpVPcmDk' // get a placeId using https://developers.google.com/places/web-service/place-id
        }, function(place, status) {
            if (status === google.maps.places.PlacesServiceStatus.OK) {
                var resultcontent = '';
                for (i = 0; i < place.reviews.length; ++i) {
                    if (place.reviews[i].rating >= 4) {
                        //window.alert('Name:' + place.name + '. ID: ' + place.place_id + '. address: ' + place.formatted_address);
                        resultcontent += '<li class="reviews__item">'
                        resultcontent += '<div class="reviews__review-er">' + place.reviews[i].author_name + '</div>';
                        var reviewDate = new Date(place.reviews[i].time * 1000);
                        resultcontent += '<div class="reviews__review-er"> <p>Rating: ' + place.reviews[i].rating; + ' </p></div>';
                        var reviewDateMM = reviewDate.getMonth() + 1;
                        var reviewDateFormatted = reviewDate.getDate() + '/' + reviewDateMM + '/' + reviewDate.getFullYear();
                        resultcontent += '<div class="reviews__review-date">' + reviewDateFormatted + '</div>';
                        resultcontent += '<div class="reviews__review-rating reviews__review-rating--' + place.reviews[i].rating + '"></div>';
                        if (!!place.reviews[i].text) {
                            resultcontent += '<div class="reviews__review-comment">' + place.reviews[i].text + '</div>';
                            resultcontent += '<div class="reviews__review-comment"> <a target="_blank" href="'+place.reviews[i].author_url+'">click here</a></div>';
                        }
                        resultcontent += '</li>'
                    }

                }
                $('#reviews__content').append("<b>Corporate Office</b><br><br>" + resultcontent);
            }
        });
    }
    </script>
</body>

</html> 

最佳答案

看起来 JS 解释器确实没有足够的时间来声明该函数。您可以采取以下措施:

交换 google 库和您的 JS 代码,以便您的代码在库上方声明。

<script>//your code</script>
<script async defer src="...google..lib" />

这是您处理 JSfiddle 的代码

关于javascript - getRelevantGoogleReviews 不是 WordPress 中的函数错误,但可以在 Localhost 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47919342/

相关文章:

javascript - 如何使用 Google Maps API 跟踪多边形的事件更改

javascript - 寻找 Azure 服务来管理网络推送通知

php - 初始网站加载速度较慢,后续加载速度较快

Javascript - 文本字段提交到弹出窗口

wordpress - WP WooCommerce 从结帐下拉列表中获取国家/地区

javascript - 标记未显示在谷歌地图上

java - Android - EBADF(错误文件号)OnClickInfoMarker

javascript - JS Canvas 中ctx的旋转线条

javascript - 如何通过某些操作自动单击按钮

javascript - 鼠标悬停时暂停 Jquery 脚本