js 弹出新页面,避免被浏览器、ad拦截的一种办法

以绑定click弹窗的方式,改为普通的链接,即 a[target=_blank],在点击打开新窗口之前,修改其href。

绑定mousedown,鼠标点击执行完成前修改href。

绑定focus,保证tab切换+enter时替换href。

<input type="search" id="keyword" value="" autocomplete="off" placeholder="请输入搜索关键字" />
        <a href="###" id="submit" target="_blank" >搜索</a>
        <script type="text/javascript">
                (function(document) {
                    var submit = document.getElementById('submit');
                    var keyword = document.getElementById('keyword');
                    var url = 'http://www.baidu.com/baidu?wd=';
                    submit.onfocus = submit.onmousedown = function() {
                        var href = url + escape(keyword.value);
                        if (href !== submit.href) {
                            submit.href = url + escape(keyword.value)
                        }
                    } 

                })(document);
        </script>

ps:还可以在 在html代码中 以onclick  dom 0级方式绑定 、target方式提交表单等

原文地址:https://www.cnblogs.com/henryli/p/3701576.html