Prompting a User to Save When Leaving a Page。この4guysの記事は、必要なもののように聞こえる。それはonbeforeunloadイベントについて語ります。 onbeforeunloadについてもstackoverflowにいくつかの素晴らしいのpostsがここにあります。
これまでのところ、iframeで実際にiframeが起動しないようです。バグ!
ここでは動作するはずのサンプルコードを示します。これは同じドメインにいる場合にのみ有効です。そうでない場合は、same origin policyはiframeが親とやりとりするのを防ぎます。
私はYMMVのように多くのブラウザでこれらをテストしていません。
ここでは、変更ロジックのプロンプトをどこに配置するかによって、2つのオプションがあります。
オプション1には、変更があったときに親ウィンドウに通知するiframeが関係します。
親ウィンドウのjavascript:
window.onbeforeunload=closeIt;
var changes = false;
function closeIt()
{
if (changes)
{
return "Yo, changes, save 'em?";
}
}
function somethingChanged() {
changes=true;
};
のiframeのjavascript:
:2はjavascriptの親ウィンドウのonbeforeunload
親ウィンドウの制御を取るのiframeを必要とする
$(function() {
$('input').change(parent.somethingChanged);
});
オプション
のiframe javascriptの:-)何もありません:ナイーブchanges
変数はおそらくがありますかどうかを確認するために、4guys記事からの技術を使用して、ビットを強化しすることができいずれかのオプションで
$(function() {
parent.window.onbeforeunload = myCloseIt;
$('input').change(somethingChanged);
});
var changes = false;
function myCloseIt()
{
if (changes)
{
return "Yo, changes, save 'em?";
}
}
function somethingChanged() {
changes=true;
};
は、本当にが変更されました。彼らは異なるドメインにしているが、あなたはHTMLの「両面」の担当に残っている場合は
、彼らは困難だ、まだいくつかのオプションがあります。
xssinterfaceは、postMessage
と場所ハッシュと秘密のブードーブラックマジックを使用してクロスサイトを通信するライブラリです。
おかげでダン - これはiframeでうまくいくと思っていますか? – tonyf
チェックボックスを取得するために、iframeに到達するなど、いくつかの改造が必要になるかもしれませんが、コンセプトはまだ成立しています。あなたが問題を抱えている場合は、私はサンプルを –
ダン、私はそれがiframeレベルでは、親だけで発射することはできません残念ながら働くことができるかどうかを確認します。 iframeレベルでトラップするためにいくつかのサンプルコードで正しい方向に私を指すことができれば感謝します - ありがとう。 – tonyf