我有一个自定义的WordPress插件,它似乎不适用于IE7或IE8。但在IE9中工作正常。
因此,用户点击此链接:
<a style="cursor:pointer;color:#ddd;" onclick="Javascript:cp_module_lottery1ptentry();">LINK</a>
反过来又称之为:
function cp_module_lottery1ptentry(){
cpdlotterymsg='<?php _e('Are you sure you want to use ', 'cplotto'); ?> <?php echo get_option('cp_lottery1_enter_amount'); ?> <?php _e(' points to purchase a '.get_option('cp_point_entry_label').'?', 'cplotto'); ?>';
thebox = new Boxy('<form id="cp_donate" name="cp_donate" method="post" onsubmit="Boxy.confirm(cpdlotterymsg,function(){cp_module_lottery1ptentry_do();});return false;"><p><strong><?php _e('Use', 'cplotto'); ?> <?php echo get_option('cp_lottery1_enter_amount'); ?> <?php _e('points to purchase a '.get_option('cp_point_entry_label').'.', 'cplotto'); ?></p><br /><br /><input type="submit" value="<?php _e('Purchase '.get_option('cp_point_entry_label').'', 'cplotto'); ?>" style="width:300px;" /></form>', {title: '<?php _e(''.get_option('cp_point_entry_log_label').'', 'cplotto'); ?>', modal: true});
}
哪个有效,但下一步它会在它调用的地方中断:cp_module_lottery1ptentry_do()
function cp_module_lottery1ptentry_do(){
<?php $cb_current_page_url = get_permalink(); ?>
jQuery.ajax({
url: "<?php bloginfo('url'); ?>/wp-admin/admin-ajax.php",
type: "POST",
cache: false,
dataType: "json",
data: "action=cp_module_lottery1ptentry_do",
success: function(data){
if(data.success==true){
Boxy.alert(data.message);
window.setTimeout('window.location = "<?php echo $cb_current_page_url; ?>"', 5500);
thebox.hide();
thebox.unload();
}
else{
Boxy.alert(data.message);
}
}
});
}
我在IE7 / IE8中没有错误,只是在调用cp_module_lottery1ptentry_do()函数时没有任何反应。
我做了很多搜索并尝试了几件事,但没有任何工作。
答案 0 :(得分:0)
确保您的admin-ajax
文件声明了相应的文档类型。
<?php header('Content type: application/json'); ?>
答案 1 :(得分:0)
我改变了两件事来让它发挥作用。我将数据更改为:
data: {action: "cp_module_lottery1ptentry_do"},
然后我删除了所有html代码的框变量:
thebox = new Boxy('<form name="cp_donate" id="cp_donate" method="post" onsubmit="Boxy.confirm(cpdlotterymsg,function(){cp_module_lottery1ptentry_do();});return false;"><label for="cp_points"><?php _e('Use', 'cplotto'); ?> <?php echo get_option('cp_lottery1_enter_amount'); ?> <?php _e('points to purchase a '.get_option('cp_point_entry_label').'.', 'cplotto'); ?></label><br /><br /><input type="submit" value="<?php _e('Purchase '.get_option('cp_point_entry_label').'', 'cplotto'); ?>" style="width:300px;" /></form>', {title: '<?php _e(''.get_option('cp_point_entry_log_label').'', 'cplotto'); ?>', modal: true});
所以现在它可以工作,在IE6中 - IE9!这里如果最终代码:
function cp_module_lottery1ptentry(){
cpdlotterymsg='<?php _e('Are you sure you want to use ', 'cplotto'); ?> <?php echo get_option('cp_lottery1_enter_amount'); ?> <?php _e(' points to purchase a '.get_option('cp_point_entry_label').'?', 'cplotto'); ?>';
thebox = new Boxy('<form name="cp_donate" id="cp_donate" method="post" onsubmit="Boxy.confirm(cpdlotterymsg,function(){cp_module_lottery1ptentry_do();});return false;"><label for="cp_points"><?php _e('Use', 'cplotto'); ?> <?php echo get_option('cp_lottery1_enter_amount'); ?> <?php _e('points to purchase a '.get_option('cp_point_entry_label').'.', 'cplotto'); ?></label><br /><br /><input type="submit" value="<?php _e('Purchase '.get_option('cp_point_entry_label').'', 'cplotto'); ?>" style="width:300px;" /></form>', {title: '<?php _e(''.get_option('cp_point_entry_log_label').'', 'cplotto'); ?>', modal: true});
}
function cp_module_lottery1ptentry_do(){
jQuery.ajax({
dataType: "json", data: {action: "cp_module_lottery1ptentry_do"},
success: function(data){
if(data.success==true){
Boxy.alert(data.message);
window.setTimeout('window.location = "<?php echo $cb_current_page_url; ?>"', 5500);
thebox.hide();
thebox.unload();
} else { Boxy.alert(data.message); }
}
});
}
我还有一个.js文件,里面有这个。感谢ajaxSetup提示Matt Wolfe!
jQuery.ajaxSetup({ url: "../../../wp-admin/admin-ajax.php", type: "POST", cache: false });