Webフォームのファイルアップロードフィールドは、IE7とIE8を除くすべての場所で機能します。アップロードボタンをクリックすると、次のようなjsアラートが表示されます
「/ file/ajax/submitted/nameofmyuploadfield/form-reallylongrandomstringの処理中にエラーが発生しました:」
私はjQuery Updateモジュールを介していくつかの異なるバージョンのjQueryを試しましたが、役に立ちませんでした。新しいdrupalインスタンスですぐにWebformモジュールを試してみたところ、同じエラーが発生しました。WebformファイルのアップロードがIE7で機能することは決してないので、 IE8でも、それが私の状況の現実のようです。この問題を克服するための知識を教えてください。
すぐに使えるWebフォームファイルのアップロードがIE7およびIE8で機能しない例 http://bonkmas.com/vids/node/4
私はこの奇妙な問題を解決することができました。正しいツールをデバッグできれば、根本的な原因は比較的簡単に見つけることができました。これはIE7/8の問題です。私の問題はアダプティブイメージスタイルに関連していましたが、現在は無効にしても機能します。
ここでの答え: IE8デバッグ(スタックオーバーフロー) は、IE8でのデバッグ機能を向上させるのに役立ちます。
Eに監視を設定し、エラーがスローするものを確認して、次にどこを見ればよいかヒントが得られるかどうかを確認します。
ここで特に遭遇した問題は/misc/ajax.jsにあるので、このファイルを開いて、239行目から次の変更を加えます。
//try {
if (ajax.form) {
// If setClick is set, we must set this to ensure that the button's
// value is passed.
if (ajax.setClick) {
// Mark the clicked button. 'form.clk' is a special variable for
// ajaxSubmit that tells the system which element got clicked to
// trigger the submit. Without it there would be no 'op' or
// equivalent.
element.form.clk = element;
// }
ajax.form.ajaxSubmit(ajax.options);
}
else {
ajax.beforeSerialize(ajax.element, ajax.options);
$.ajax(ajax.options);
}
}
//catch (e) {
// Unset the ajax.ajaxing flag here because it won't be unset during
// the complete response.
ajax.ajaxing = false;
alert("An error occurred while attempting to process " + ajax.options.url + ": " + e.message);
//}
IEインスペクターでエラーが発生している場所を覆い隠していたため、try/catchを削除します。これらの変数のそれぞれにブレークポイントを設定し、ajaxにウォッチを設定します。ページを表示し、各変数をチェックするエラーを続行します。エラーが発生すると、コンソールは、エラーをスローしているファイルに移動します。
これがお役に立てば幸いです。