ユーザーが私の Web サイトにログインすると、アクティブなプロモーションがあるかどうかを確認し、アクティブなプロモーションがある場合は、ポップアップ iFrame にメッセージを表示したいと考えています。
これは IE8 と IE9 では機能しますが、FF や Chrome では機能しません。
Chrome を使用すると、ページは document.ready 関数を単純にループします。つまり、document.ready と showOpeningMessages() のコードを実行しますが、iFrame は表示されず、すぐに document.ready に戻り、プロセスを繰り返します。ページがリロードされたかのように。
コードは次のとおりです。
ページ読み込みの一部としての C# コード ビハインド
// session variable will be null to begin with to display message
string promotionOpeningMessagesViewed = Session["promotionOpeningMessagesViewed"] == null ? "0" : "1";
Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
"pageScript", @"
function openingMessagesModalID()
{
var id = '" + promotionOpeningMessagesPanel.ClientID + @"';
return id;
}
function countOpeningMessages()
{
var id = '" + mgr.PromotionOpeningMessageList.Count.ToString() + @"';
return id;
}
function showOpeningMessages()
{
$('#iframepromotionOpeningMessages').attr('src','PromotionOpeningMessages.aspx');
document.getElementById('" + okayOpeningMessagesButton.ClientID + @"').style.display = 'block';
}
$(document).ready(function() {
if (countOpeningMessages() != '0' && '" + promotionOpeningMessagesViewed + @"' == '0') {
document.getElementById('" + dummyButton.ClientID + @"').click();
};
});
", true);
これはマークアップです:
<asp:Panel runat="server" ID="promotionOpeningMessagesPanel" style="display:none;" CssClass="openingMessageBox" >
<iframe id="iframepromotionOpeningMessages" frameborder="0" src="about:blank" style="border:none; width: 100%; height: 90% "></iframe>
<asp:LinkButton ID="okayOpeningMessagesButton" runat="server"
Text="<%$ Resources:UIText, OK%>"
CssClass="buttons positive BtnAdd rightAlignButton"
style="display:none;" />
<asp:LinkButton ID="dummyButton" runat="server"
Text="<%$ Resources:UIText, OK%>"
CssClass="buttons positive BtnAdd"
OnClientClick="showOpeningMessages();"
style="display:none;" />
</asp:Panel>
<ajaxControlToolkit:ModalPopupExtender runat="server"
ID="promotionOpeningMessagesModalPopupExtender"
BehaviorID="promotionOpeningMessagesModalPopupExtender"
BackgroundCssClass="modalBackground"
PopupControlID="promotionOpeningMessagesPanel"
RepositionMode="RepositionOnWindowResizeAndScroll"
OkControlID="okayOpeningMessagesButton"
TargetControlID="dummyButton" />
助けてくれてありがとう