我有一个网站,我们需要一些自定义php编码来连接到外部数据库,以获取几个销售我们产品的供应商的产品评论URL。我们试图实现的基本想法是让用户注册他们的产品,然后如果他们愿意留下评论,就延长保修期。我正在使用XYZScript。com的“插入PHP”插件来实现这一点。该主题最初只加载了jQuery,以避免创建子主题,我们正在php脚本中加载jQueryUI。因此,我们将jQuery加载到文档的标题中,将jQueryUI加载到文档的正文中。我不太确定这是因为加载脚本的顺序造成的,还是其他一些冲突的javascript导致了错误。您可以在下图中看到错误。
Chrome\'s Console Output On Calling The Dialog
Relevant Code
<script>
jQuery.ajax({
type: \'GET\',
url: "<?=$ajax_handler?>?method=check_warranty&model="+model,
success: function(response) {
if (response == \'\')
duration = \'6\';
else
duration = response;
jQuery(\'#warranty_length\').val(duration);
jQuery(\'#warranty_dialog\').dialog({
width:\'700px\',
height:\'408px\',
position:\'absolute\',
top:\'300px\'
}).html("HTML TO DISPLAY REVIEW LINK BUTTON");
jQuery(\'.titlebar-close\').hide();
}
});
</script>
正如您所看到的,代码非常简单。用户填写完表单后,我进行了一个ajax调用,该调用使用模型和供应商查询我们的数据库,以获取该产品的适当审查链接,然后创建指向该供应商和模型的审查页面的链接。
我试图确定错误是否由以下三种原因之一引起。
订单jQuery有问题;正在加载jQueryUI我的代码有一个问题(我已经在其他一些网站上成功使用了这个脚本)如果主题中可能有其他javascript与我的脚本冲突如有必要,我可以在php脚本上提供您需要的任何其他相关代码。页面的url为:
http://www.kriegermfg.com/register-test/
任何帮助都将不胜感激。
Edit让我们进一步了解一下,这是jQueryUI的失败之处。
SO网友:kub1x
我在这里调试我的WP安装上的相同错误。之前的答案是针对插件/主题开发人员的,所以作为一名管理员,我需要一种稍微不同的方法。我必须自己找出问题的根源。
据我所知here 我在我的config.php
获取Javascript源的未统一版本。
define(\'SCRIPT_DEBUG\', true);
TL;DR 在浏览器中,我发现文件失败,因为
sotrtable.js
. 然后我去了我的托管服务器,在wordpress根目录中使用
the silver searcher:
ag -l sortable
. 在那里我注意到
wp-content/themes/OurCustomTheme/functions.php
有一个电话
wp_enqueue_script(\'jquery-ui\', \'//code.jquery.com/ui/1.11.4/jquery-ui.js\', array(), \'20120206\')
拉取的固定版本
jQuery ui 来自CDN。我将其替换为
wp_enqueue_script(\'jquery-ui-core\')
它是WordPress安装附带的lib的当前版本,并导入到
wp-includes/script-loader.php
.
我描述整个问题是为了向其他人展示,当他们遇到这样的Javascript异常时,他们前面会有什么样的解决过程caused by theme or plugin pulling incorrect version of some JS sources and overriding the correct one.