js急该怎么处理
js急急急
页面A:上面有一个<a>链接</a>,点击会跳出另外一个页面B
页面B:如果此页面有<input type="text" name="a">,那么这个页面才出来。注:此页面是动态生成的!
实现的效果,如果有那个input。那么我就打开B,如果没有,就拦截了。
怎么写?
------解决方案--------------------
1:如果检测B页面的元素可以转换为文档操作,那是最好了.
2:如果B页面中的那个东东是一种类似于状态值的话,因为你说了它是动态生成的,那你或许可以使用一个同步模式的ajax去实现这个检测.具体的方法得参考你自己的实际需求
3:如果都不行,恭喜你,还是有个不是办法的办法,如果a的target设置为类似于_blank的另一个窗口打开的话,那有可能会被浏览器的"弹出窗口阻止程序"给拦截
页面A:上面有一个<a>链接</a>,点击会跳出另外一个页面B
页面B:如果此页面有<input type="text" name="a">,那么这个页面才出来。注:此页面是动态生成的!
实现的效果,如果有那个input。那么我就打开B,如果没有,就拦截了。
怎么写?
------解决方案--------------------
1:如果检测B页面的元素可以转换为文档操作,那是最好了.
2:如果B页面中的那个东东是一种类似于状态值的话,因为你说了它是动态生成的,那你或许可以使用一个同步模式的ajax去实现这个检测.具体的方法得参考你自己的实际需求
3:如果都不行,恭喜你,还是有个不是办法的办法,如果a的target设置为类似于_blank的另一个窗口打开的话,那有可能会被浏览器的"弹出窗口阻止程序"给拦截
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>测试</title>
<script type="text/javascript">
function check(obj){
var href = obj.getAttribute('href'),
arrow = obj.getAttribute('arrow'),
div = document.getElementById('ifrDiv'),
_iframe,element;
//当具备arrow属性且值为1时,表示已经通过了检测
if(arrow=='1'){
//检测完成后允许跳转的链接
obj.removeAttribute('arrow');
return true;
};
/******************检测******************/
//先去除当前的href属性,使超链接失效
obj.removeAttribute('href');
//在隐藏的层内创建一个iframe,目标页为原链接页
div.innerHTML = '<iframe id="chkiframe" src="'+href+'" width="1" height="1"></iframe>';
//获取iframe的窗口句柄
_iframe = document.getElementById('chkiframe').contentWindow;
//原链接页加载完成后进行检测
_iframe.onload = function(){
//先还原当前的href属性,使超链接生效
obj.setAttribute('href',href);
//获取目标页中待检测的元素对象
element = _iframe.document.getElementById('test');//test为待检测的元素对象ID,你可以按自己需求进行更改
//清空隐藏层的内容::即测试使用的iframe
div.innerHTML = '';
if(element){