特定の REL タグを持つすべてのリンクをハイジャックするスクリプトがあり、サイトの JS バージョンのメイン コンテンツ エリアを更新します。問題は、コンテンツ フレーム (div) にロードされたページが、一致する REL を持っていてもコードを実行しない独自の JS ファイルにある場合です。これらのページにスクリプトを添付すると、このスクリプトが見つかった回数だけこのスクリプトが実行されるというバグが発生しました。したがって、コンテンツ リンクの 3 ページを通過した場合、これは 3 回実行されます。5 ページは 5 回の実行に相当します。これに半日を費やしましたが、もっとうまくできることを本当に知りたいです。
これは、リンクをハイジャックするために使用しようとしているもののスニペットです。
$("a[rel='linkMain']").click(function() {
var link = $(this).attr("href");
priFrame(link, 'main', 'true');
return false;
});
これが私の priFrame のスニペットです。データをロードしようとしている方法がわかります。
function priFrame(page, frame){
$('#'+frame+'frame').load('/'+page).hide(0).scrollTop(0).fadeIn(1000);
$("html, body").animate({ scrollTop: 0 }, 600);
window.history.pushState(null, page, page);
}