日期:2014-05-16  浏览次数:20575 次

js急急急
页面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(){