safari,opera嵌入iframe页面cookie读取问题解决方法 |
本文标签:iframe,cookie读取 查到原因是因为在这些浏览器中对第三方的cookie安全验证比较严格,需要确认是用户主动到第三方网站的,才能读到cookie,于是加个引导页面要用户点击下才能进入我们的组件 。 1,首页 判断是否是这些浏览器,若是则去引导页面,其中reflag是判断是否已经去过引导页面 。若已经引导过就不去引导页面了 。 复制代码 代码如下: function safarireload() { var rehref=window.location.href; if(jQuery.browser.safari&&<%=reflag %>==0) { window.location.href=/safarireload.aspx?rehref=+rehref; } if(jQuery.browser.opera&&<%=reflag %>==0) { window.location.href=/safarireload.aspx?rehref=+rehref; } } 后台代码 复制代码 代码如下: public string reflag="3"; if (Request.QueryString["reflag"] != null && Request.QueryString["reflag"].ToString() != "") { reflag = Request.QueryString["reflag"].ToString().Trim(); } else { reflag = "0"; } 2,引导页面 rehref是要回去的页面 <asp:Button ID="Button1" CssClass="rb1-12" runat="server" Text="您使用的苹果浏览器或opera,请点击进入电影票订购组件!" OnClick="Button1_Click" /> 后台代码 复制代码 代码如下: protected void Button1_Click(object sender, EventArgs e) { if (Request.QueryString["rehref"] != null && Request.QueryString["rehref"].ToString() != "") { kaixindo.syslog(Request.QueryString["rehref"].ToString()); Response.Redirect(Request.QueryString["rehref"].ToString() + "&reflag=1"); } } 在引导页面用js取网页url的参数rehref,页面性能更好 。不过先这样了 。 代码冗余或效率底下的欢迎指正 。希望对有些人有些帮助 。 |