我正在尝试弄清楚如何修复一个名为“REdmine Hooks Manager”的插件,我刚刚添加到我的Redmine安装中。
每当我尝试点击其中一个按钮来配置Chrome开发者工具报告的插件时:
未捕获的ReferenceError:未定义get
生成异常的HTML如下所示:
<li><a href="#" onclick="$.ajax({url:'/hooks/tree?by=location', async:true, data:'hook=' + selected_hook + '&all=' + ($('show_all').checked ? 1 : 0), type:get}).done(function() {structured_by = 'location'})" class="">By location</a></li>'
和
<input id="show_all" name="show_all" onchange="$.ajax({url:'/hooks/tree', async:true, data:'hook=' + selected_hook + '&by=' + structured_by + '&all=' + ($('show_all').checked ? 1 : 0), type:get})" type="checkbox" value="1" />'
和
<a id="view_layouts_base_content" href="#" onclick="if ((html_code_changed == false) || confirm('HTML code has not been saved and going to be lost if you continue... Are you sure?')) { $.ajax({url:'/hooks/load?hook=view_layouts_base_content', async:true, type:get}).done(function() {updateSelectedHook('view_layouts_base_content')}); }" class="icon icon-file text-plain selected"> Content (bottom)</a>'
等...
我找到了这个似乎相关的javascript(正在加载):
function updateSelectedHook(hook) {
var previousItem = $('#'+selected_hook);
if (previousItem) {
previousItem.removeClass('selected');
}
selected_hook = hook;
var nextItem = $('#'+selected_hook);
if (nextItem) {
nextItem.addClass('selected');
}
html_code_changed = false;
}
function updateHookPreview() {
$('#preview-content').html($('#html_code').val());
$('#preview').show();
}
function updateHooksTree(url, mode) {
$.ajax({
url: url,
type: 'get',
data: 'hook=' + selected_hook + '&by=' + mode + '&all=' + ($('#show_all').is(':checked') ? 1 : 0),
success: function(data) { structured_by = mode; }
});
}
function updateHookForm(url, hook, msg) {
if ((html_code_changed == false) || confirm(msg)) {
$.ajax({
url: url,
type: 'get',
success: function(data) { updateSelectedHook(hook); }
});
}
}
该插件适用于干净的安装,所以我强烈怀疑这是两个插件之间的兼容性问题。经过相当多的挖掘后,我发现似乎有3个jQuery副本被加载。版本1.8.3,1.7.1和1.7.3因此可能导致问题。
我还试图使用Chrome脚本调试器进入updateSelectedHook函数,但它没有被调用。也许是因为$ .ajax调用本身失败了。
所以...现在最好的猜测是,更新版本的jQuery改变了ajax调用的方式但是我已经没有关于如何进一步测试的想法,并希望这里的某人可能能够协助。有什么想法吗?
提前致谢。