2012-01-10 24 views
0

私はカスタムWordPressプラグインを使用しています。IE7やIE8では動作しません。しかし、IE9で正常に動作します。AJAX jQueryはIE7、IE8で起動しませんが、Firefox、Chromeなどで正常に動作します。

だから、ユーザーがこのリンクをクリック:働く

 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}); 
    } 

、それが呼び出したところ、それは破る次のステップ:

<a style="cursor:pointer;color:#ddd;" onclick="Javascript:cp_module_lottery1ptentry();">LINK</a> 

今度はこれを呼び出す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_lottery1ptentを呼び出すと何も起こりません。 ry_do()関数。

私は多くの検索を行い、いくつかのことを試みましたが、何も動作していません。

+0

あなたのデモページでは何をクリックしていますか?どのデモアカウントですか? – mrtsherman

+0

このコードはawefulです。あなたは基本的な機能は同じですが、30回も少し違います.JQueryから$ .extend関数をチェックアウトしてください。また、AJAXのデフォルトを設定することもできます。http://api.jquery.com/jQuery .ajaxSetup/ あなたのページのソースを確認してください。上にはありません.. –

+0

個人的に私がやることは、要素のonclick属性を取り除き、目立たないjavascriptでバインドすることです。 ajax呼び出しを呼び出す要素のカスタム属性、おそらく渡すアクション(データパラメータ)を持つアクション属性を作成し、次に呼び出される関数の名前を定義するcbパラメータ成功のために –

答えて

0

2つのことが機能するように変更されました。私はこれまで、データを変更:

data: {action: "cp_module_lottery1ptentry_do"}, 

それから私は、すべてのHTMLコード削除ボックスの変数:だから今、それはIE6で、作品

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}); 

を - 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 }); 
0

admin-ajaxファイルが適切なドキュメントタイプを宣言していることを確認してください。

<?php header('Content type: application/json'); ?> 
関連する問題