更新:イベント "xepOnlineStatus"をコアコードに追加しました。 paramをステータスに設定し、フォーマットの開始と終了時にトリガします。これらの州は「開始」と「完了」です。同じスピナーでこれらのイベントを処理する以下のようなシンプルなJSを今実装することができます。サイトのメインJSが更新され、Githubコードがすぐに更新されます。
ここで動作確認できます:http://www.cloudformatter.com/CSS2Pdf、PDF形式のみでスピナーが有効になります。
document.observe('dom:loaded', function() {
jQuery(document).on("xepOnlineStatus", function(event, state){
if (state == "Started"){
var screenTop = jQuery(document).scrollTop();
var screenHeight = jQuery(window).height();
jQuery('#spinner-overlay').css('top', screenTop);
jQuery('#spinner-overlay').css('height', screenHeight);
jQuery('#spinner-overlay').toggle('show');
}
else if (state == "Finished"){
jQuery('#spinner-overlay').toggle('hide');
}
});
})
ENDのUPDATE:一瞬、「他の何か」の精神で完全
放置下記のオリジナルの答え、ここに提供するために、現在のJSをハッキングし、いくつかCSSを追加するための方向性とDOM要素ですスピナー:
1)メイン(xepOnline.jpPlugin.js)をハッキング:
私は
)ライン735上や周り(このような形式の機能を変更しました
ここでの変更は、スピナーオーバーレイを配置し、スピナーdivを適切に設定するための2つのvarを取得することです。次に、この関数がフォーマット処理全体を開始するので、 "on"に切り替えます。
次に、__postBackSuccess関数と__postBackFailure関数を変更して、これらの関数がプロセス全体を終了させるため、スピンナ(行787と872の上または周り)を非表示にしました。私はこれらの関数の中で次の行を最初の行として追加しました。次に、 "submit"メソッドをカバーするようにPOST submitallを変更しました。上記は "newwin"と "embed"の後のスピナーを却下しますが、ダウンロードはしません。フォームが投稿された直後のライン698上や周囲に
、追加:
jQuery('#spinner-overlay').toggle('hide');
2)CSS
私は自分のページのために、以下のCSSを追加しました:
#spinner-overlay {
background-color: #aaa;
opacity: 0.4;
position: absolute;
left: 0px;
top: 0px;
z-index: 100;
height: 100%;
width: 100%;
overflow: hidden;
background-image: url('/Resources/Images/ajaxSpinner.gif');
background-position: center;
background-repeat: no-repeat;
}
注:あなたは自分のカスタムスピナーをバックグラウンドイメージとして指します。私のものは "gif"です。
3)ページが右、このような後>私は<のdivを追加
を変更します。
<div id="spinner-overlay" style="display:none;"></div>
だから何が起こる...フォーマットが開始したときには、現在のページのレイアウトを取得し、スピナーを拡大divを使用してその領域をカバーし、不透明で画面上に重なったスピナーを表示します。フォーマットが終了または中断すると、そのスピンナーdivが隠されます(または、ダウンロードすると、フォーマットするサーバーにデータがポストされたときにスピナーが非表示になります)。
いいですね。