jquery - 取消从同一页面的另一部分发生的警报

时间:2014-10-29 21:37:03

标签: javascript jquery

我有一个非常独特/奇怪的情况。在我的项目中,在我的主模板上,我在页面底部有以下情况....

...
<body>
<div>blah...blah</div>


/*FOR CURTAIN REASONS, I CAN'T TOUCH THIS SCRIPT*/
<script type="text/javascript">
var ccPopup = window.open('http://www.google.com','_blank'); 
if (!ccPopup) alert('Your browser has popup blocker enabled. Please disable it and try again');
var _fV4UI = true;
</script>
/**/

/*BUT I CAN CONTROL ALL THINGS BELOW...*/
<script type="text/javascript" src="jquery_1.8.3.min.js"></script>
<script type="text/javascript" src="my-javascript-file.js"></script>
/**/

</body>
..

我基本上想阻止(!ccPopup)执行每次页面加载时发生的警报消息。如何防止在my-javascript-file.js中发生此警报操作?如果我不能在那里做,我还可以灵活地在我的页面的<head>中添加javascript,如果需要的话......

感谢您的任何建议!

3 个答案:

答案 0 :(得分:2)

如果您在网页上没有任何其他提醒,那么您可能会做出类似的事情。

  window.alert = function() {
      return false;
  }

不漂亮,但它可能有用。

答案 1 :(得分:1)

这绝对是一个丑陋的黑客,但您可以重新定义window.open()

window.open = function() { return true; };

后:

var ccPopup = window.open('http://www.google.com','_blank');
if (!ccPopup)
    alert('...');

第一行应该在head之前,在另一个代码段之前。

http://jsfiddle.net/0abgvrtf/

答案 2 :(得分:1)

在头脑中,你必须劫持警报功能:

showAlert = false;
myAlert = window.alert;
window.alert = function(msg) { 
    if (showAlert) { 
        myAlert(msg); 
    } 
}

然后,您可以通过更改showAlert;

的值来切换是否显示警报
showAlert = true; alert("hi"); //alerts "hi"
showAlert = false; alert("hi"); //nothing happens.

您还可以执行以下操作:

window.alert = function(msg) { 
    if (msg != "Your browser has popup blocker enabled. Please disable it and try again") { 
        myAlert(msg); 
    } 
}