【问题标题】:Wordpress JS Conflict: Inserting JS via custom post disables all JS on the pageWordpress JS 冲突:通过自定义帖子插入 JS 会禁用页面上的所有 JS
【发布时间】:2015-05-15 00:49:41
【问题描述】:

我正在使用 Savant 主题来构建网站,我在某些页面上使用以下 JS 代码(使用自定义字段,我使用字段名称“example”然后将 JS 赋值)通过调用 API 来获取属性列表和接收 JSON 数据。

JS代码:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript" language="JavaScript"></script>

<!--<script type="text/javascript" src="http://www.bedstax.com/realtorData/featuredCommunities.php?state=FL&area=Bonita Springs%20/%20Estero"></script>
//-->
<script type="text/javascript">

var state = 'FL';
var area = 'Bonita Springs / Estero';
var idx = '583';
var agent = '1212';
var domain = 'xxx';

function setCommunity(community,communityName) {

    var cookieSet = window.state + "::" + window.area + "::" + window.idx + "::" + window.agent + "::" + window.domain + "::" + community + '::' + communityName;

    document.cookie='idxCookie=' + cookieSet + '; path=/';
    document.location.href = '/featured-communities-info';
}


jQuery(document).ready(function() {

    jQuery.ajax({
        url:"http://bedstax.com/realtorData/newFeatComm.php?state=" + window.state + "&area=" + window.area + "&idx=" + window.idx,
        dataType: 'JSONP', // Notice! JSONP <-- P
        success:function(json){
            $('.output').html(json);
        },
        error:function(){
            alert("Error");
        },
    });
});

</script>
<div class="output">
</div>

删除自定义字段会启用所有 javascript,但这段代码有效。我正在做的事情有问题吗,因为它禁用了页面上的所有 JS。

任何帮助将不胜感激。

【问题讨论】:

  • 检查 JS 控制台 - 如果它禁用了页面上的所有 JS,可能会在某处抛出异常
  • 这是它在 JS 控制台中所说的:Uncaught TypeError: this.on is not a function (in jquery.min.js:16)

标签: javascript jquery ajax wordpress


【解决方案1】:

如果你包含jquery,它可以工作,运行下面的代码。

var state = 'FL';
var area = 'Bonita Springs / Estero';
var idx = '583';
var agent = '1212';
var domain = 'xxx';

function setCommunity(community,communityName) {

    var cookieSet = window.state + "::" + window.area + "::" + window.idx + "::" + window.agent + "::" + window.domain + "::" + community + '::' + communityName;

    document.cookie='idxCookie=' + cookieSet + '; path=/';
    document.location.href = '/featured-communities-info';
}


jQuery(document).ready(function() {

    jQuery.ajax({
        url:"http://bedstax.com/realtorData/newFeatComm.php?state=" + window.state + "&area=" + window.area + "&idx=" + window.idx,
        dataType: 'JSONP', // Notice! JSONP <-- P
        success:function(json){
            $('.output').html(json);
        },
        error:function(){
            alert("Error");
        },
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="output">
</div>

【讨论】:

  • 如果您在使用 jquery 时遇到 .on 错误,您可能需要更新版本的 jquery。
  • 我会用最新版本试试
  • 不幸的是,添加新版本的 jquery 并不能解决问题,我添加了最新版本
  • 嗯,请务必删除旧的脚本引用。如您所见,上面的代码有效。控制台有不同的js错误吗?
  • 切换它们很容易,也许试试 1.8。并确保您没有在您所做的代码更改中引入任何错误! :)
【解决方案2】:

我通过将 jquery 版本从 1.5.1 升级到 1.7.1 找到了解决此问题的方法。

【讨论】:

    猜你喜欢
    • 2022-01-22
    • 2011-07-24
    • 2014-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多