jQueryにリンクをクリックしてコンテンツのロードが完了した後にiFrameのコンテンツを取得するためのコードがあります。それはうまくいきますが、私はそれを繰り返すことに問題があります。少なくとも、それは何をしているのかと思っていますが、理由や方法を理解することはできません。jQueryコードの繰り返しの問題
jQueryのJS:
$(".pageSaveButton").bind("click",function(){
var theID = $(this).attr("rel");
$("#fileuploadframe").load(function(){
var response = $("#fileuploadframe").contents().find("html").html();
$.post("siteCreator.script.php",
{action:"savePage",html:response, id: theID},
function(data){
alert(data);
});
});
});
HTMLリンク(多くの1):その後、
<a href="templates/1000/files/index.php?pg=0&preview=false"
target="fileuploadframe" class="pageSaveButton" rel="0">Home</a>
あなたがリンクをクリックしたときので、にリンクされているページはIFRAMEに開かれ、 JSが起動してコンテンツのロードが完了するのを待ち、iframeのコンテンツを取得してPHPスクリプトに送信してファイルに保存します。私は複数のファイルを保存するために行の複数のリンクをクリックすると、あなたがクリックした現在のファイルですべての以前のファイルの内容が上書きされるという問題があります。私は私のPHPをチェックして、JSの欠陥がかなり肯定的です。
私はPHPの戻り値を警告しているので、複数の警告ボックスが表示されていることに気付きました。メインページがロードされてからクリックした最初のリンクの場合 - それは問題ありませんが、2番目のリンクをクリックすると、クリックした前の各ページのアラートが表示されます現在のページ。
私はよく説明してくれることを願っています。私が説明する必要がある場合は、教えてください。これを解決するためには本当に助けが必要です。 :)(PHPスクリプトが関連していると思うなら、私はそれを投稿することができますが、$ _POST変数を出力して、デバッグの目的でどのページ情報が送られてくるかを知らせます)
ありがとうございます複数の応答については
$(".pageSaveButton").bind("click",function(){
var theID = $(this).attr("rel");
var lnk = $(this).attr("href");//LINK TO LOAD
$("#fileuploadframe").load(lnk,
function(){
//EXECUTE AFTER LOAD IS COMPLETE
var response = $("#fileuploadframe").contents().find("html").html();
$.post("siteCreator.script.php",
{
action:"savePage",
html:response,
id: theID
},
function(data){alert(data);}
);
});
});
、あなたは.post
呼び出しが戻るまでの任意の更なるクリックを無効にするblockuiのようなものを使用することができます。私はあなたにスクリプトを変更する必要があると思うjQueryのdocumentationから、 キー
PHPのcURLライブラリがあればそれを使用してみてはいかがですか? http://php.net/manual/en/book.curl.php –
@ジャレッド:私は思っていませんでした...もしあなたがそれがより良くなると思うなら、私はそれが正しいことを得た後、改善としてそれを見るかもしれません最初にこの方法。 – Key
@ Jared:前回のコメントに追加:実際には、これをcURLで実装しようとしましたが、なぜ停止したのか忘れてしまいました。私は、URLを介して変数を渡すことがわからないと思います。私はそれが正しく機能するようになるとは思わない。 – Key