safari,opera嵌入iframe页面cookie读取问题解决方法
作者:
最近做的合作网站嵌入到对方的iframe中去,在safari,opera和有些版本的搜狗浏览器(内核版本原因)中不能读到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,页面性能更好。不过先这样了。
代码冗余或效率底下的欢迎指正。希望对有些人有些帮助。
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,页面性能更好。不过先这样了。
代码冗余或效率底下的欢迎指正。希望对有些人有些帮助。
您可能感兴趣的文章:
- 在IE,Firefox,Safari,Chrome,Opera浏览器上调试javascript
- ASP.net Menu控件在Google Chrome和Safari浏览器下显示错位的解决办法
- 兼容IE/Firefox/Opera/Safari的检测页面装载完毕的脚本Ext.onReady的实现
- jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
- js 对联广告、漂浮广告封装类(IE,FF,Opera,Safari,Chrome
- 解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
- javascript实现阻止iOS APP中的链接打开Safari浏览器
- iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程