0

zclip を使用して ajax を使用してクリップボードにコピー アンド ペーストできることについては、さまざまなトピックで取り上げられていることは知っていますが、私の問題は、jquery、firefox、および ajax リクエストでもう少し一般的なものかどうか疑問に思っています...

$("#generate-report-to-clipboard").zclip({
            path: '/Content/ZeroClipboard.swf',
            copy: function () {
                var options = {
                    async: false, success: function (data) {
                        // now do ajax call for report results
                        $.ajax({
                            url: '<%= Url.Action("GenerateEmailToClipboard") %>',
                            type: 'POST',
                            async: false,
                            success: function (data, status) {
                                $("#copy-holder").text(data);
                            }
                        });
                    }
                };

                $("#report-definition-form").ajaxForm(options);
                $("#report-definition-form").submit();

                return $("#copy-holder").text();
            }, afterCopy: function () { alert('something'); }
        });

リンクをクリックすると、データのコピーを要求し、成功したらそのデータをクリップボードに追加するという考え方です。

この方法は、IE 8 (私が知っている奇妙なこと) と Chrome 12 では正常に機能しますが、Firefox 4 では機能しません。

AJAX 要求と関係があると思われる理由は、AJAX 呼び出しを削除して #copy-holder を値に設定すると、問題なくクリップボードにコピーされるためです。

助けてください、私は怒っています!

4

1 に答える 1

0

Firefox での AJAX 呼び出しの数がおかしいことがわかりました。ユーザーがコピーできるポップアップウィンドウがあり、次のオブジェクトに移動してポップアップを開いてコピーします。Chrome や IE などでは AJAX リクエストは 1 つなので結果を返すことができますが、Firefox では多数の AJAX リクエストが存在します。ユーザーがクリックしたポップアップ ウィンドウごとに 1 つ。

問題は、実際の jquery.jzclip.js ファイルです。2 番目、3 番目の .. リクエストは、このファイルから AJAX 関数に返されます。コンソール (F12) を使用すると、それが起こっていることがわかります。これに対する解決策はまだありません。与えられた js ファイルのトラブルシューティングを試みるのはかなり面倒です。

于 2012-06-08T14:09:48.767 に答える