你的页面访问了B啥意思?访问和操作有什么区别。必须借助B.
第一种方法、在a页面中为a定义一个名字:
var myName='northsnow2004';
window.name=myName
然后当访问了B(什么叫访问,由你自己决定),修改a的名字:
var strOpener="opener"
for(var i=0;i<10;i++)
{
var openerWin=eval(strOpener);
if(openerWin)
{
if(openerWin.name=='northsnow2004')
openerWin.name='northsnow2005';
}
else
{
strOpener +=".opener";
}
}在a中只要检查当前的名字与原来的名字是否相同就可以知道是否操作了B:
if(myName!=window.name)
{
alert('小B被人骚扰了!');
}这种方法比较简单,但是要求a和B有直接或者间接的所有关系。第二种方法:利用session ,或者cookie
首次进入A,或者进行了验证后需要将 session 或者 cookie 置一个初始值(以下以cookie为例,session更简单) :
var cookieValue='northsnow2004'
saveCookie(cookieName,cookieValue)然后无论你怎么进入到b,此时 只要一操作,就要更改cookie的值:var cookieValue='northsnow2005'
saveCookie(cookieName,cookieValue)
在a 中向判断是否操作了b就判断cookie的值是否改变:if(cookieValue!=getCookie(cookieName))
{
alert('小B被人非礼了!');
}下面两个函数是为第二种方法提供的
//-------------------------------
//为了操作方便需要两个公共函数,
//保存cookie
var cookieName='precipitant';
function saveCookie(c_name,c_value)
{
document.cookie=c_name +"=" + escape(c_value) ;
}取得cookie
function getCookie(c_name)
{
var strCookie=unescape(document.cookie);
var strTT= c_name + "=";
if(strCookie.indexOf(strTT)==-1) return ("");
var strT1=strCookie.substring(strCookie.indexOf(strTT) + strTT.length)
var strT2=strT1.substring(0,strT1.indexOf(";"))
return strT2;
}
//--------------------------
第一种方法、在a页面中为a定义一个名字:
var myName='northsnow2004';
window.name=myName
然后当访问了B(什么叫访问,由你自己决定),修改a的名字:
var strOpener="opener"
for(var i=0;i<10;i++)
{
var openerWin=eval(strOpener);
if(openerWin)
{
if(openerWin.name=='northsnow2004')
openerWin.name='northsnow2005';
}
else
{
strOpener +=".opener";
}
}在a中只要检查当前的名字与原来的名字是否相同就可以知道是否操作了B:
if(myName!=window.name)
{
alert('小B被人骚扰了!');
}这种方法比较简单,但是要求a和B有直接或者间接的所有关系。第二种方法:利用session ,或者cookie
首次进入A,或者进行了验证后需要将 session 或者 cookie 置一个初始值(以下以cookie为例,session更简单) :
var cookieValue='northsnow2004'
saveCookie(cookieName,cookieValue)然后无论你怎么进入到b,此时 只要一操作,就要更改cookie的值:var cookieValue='northsnow2005'
saveCookie(cookieName,cookieValue)
在a 中向判断是否操作了b就判断cookie的值是否改变:if(cookieValue!=getCookie(cookieName))
{
alert('小B被人非礼了!');
}下面两个函数是为第二种方法提供的
//-------------------------------
//为了操作方便需要两个公共函数,
//保存cookie
var cookieName='precipitant';
function saveCookie(c_name,c_value)
{
document.cookie=c_name +"=" + escape(c_value) ;
}取得cookie
function getCookie(c_name)
{
var strCookie=unescape(document.cookie);
var strTT= c_name + "=";
if(strCookie.indexOf(strTT)==-1) return ("");
var strT1=strCookie.substring(strCookie.indexOf(strTT) + strTT.length)
var strT2=strT1.substring(0,strT1.indexOf(";"))
return strT2;
}
//--------------------------
解决方案 »
- Ext.Grid.Gridpanel拖动列时,数据没有被拖动,为什么?
- 通过window.open()弹出的新窗口默认会被浏览器阻止
- 横向菜单,ul或li如何盖住select的问题?
- 这样的程序是怎么制作的?那些网站联盟,通过注册,得到一段 js 代码或文件,放到自己的网页上就能显示对方的信息,这样的网络程序是怎么
- 如何限制textarea字数?而且。。。请进
- 我该怎么办?
- 如何实现这个效果??
- 如何去掉确认消息框上的"VBSCRIPT确认"字样?
- 怎样确定字体高度?
- jsp动态生成行,怎么取出输入的数据?
- 怎样将列表框中选中的项添加到另一个input type=text文本框中?
- 关于从动态表格里取值的问题
之后在A中只要判断有没有B的cookie就可以了吧
注意domain部分
function SetCookie (name, value,expires,path,domain,secure)
{
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}
我刚想到了可以借助IE的历史记录来判断,不知此法是否可行?