取消来自同一页面另一部分的警报
cancel an alert that occurs from another part of the same page
我遇到了一个非常独特/奇怪的情况。在我的项目中,在我的主模板上,我在页面底部遇到了以下情况。。。。
...
<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…
谢谢你的建议!
如果页面上没有任何其他警报,您可能可以通过这样的操作逃脱惩罚。
window.alert = function() {
return false;
}
不漂亮,但它可能有用。
在头部,您将不得不劫持警报功能:
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);
}
}
这绝对是一个丑陋的破解,但您可以重新定义window.open()
:
window.open = function() { return true; };
稍后:
var ccPopup = window.open('http://www.google.com','_blank');
if (!ccPopup)
alert('...');
第一行应该在head
中,在另一个代码段之前。
http://jsfiddle.net/0abgvrtf/
相关文章:
- 如何放置单独的ajax调用,使页面的一部分完全响应,而另一部分仍在加载
- 将按钮链接到另一个页面的一部分
- 从另一个页面链接到手风琴的一部分
- 复制和修改元素,以便在html文档的另一部分使用它们
- ng-repeat=“(key, value)” 不能将 {{key}} 的值用作另一个指令的全局范围的一部分
- 如何使用 JavaScript 导航到页面的另一部分
- 将复选框的值设置为“选中”,当附加到页面的另一部分时
- JavaScript - 如何检查一个字符串是另一个字符串的一部分还是等于另一个字符串
- 使用 jQuery $.post() 方法获取另一个网页的一部分
- 检查一个句子或句子的一部分是否在另一个句子中
- 仅使用 html 将网页的一部分插入到另一个网页中
- 跨域重新创建表单功能的一部分,或在另一个网站上自动填充单个字段
- 在javascript中使用regex获取字符串的匹配部分并使用该部分替换另一部分
- 取消来自同一页面另一部分的警报
- 另存为文件的一部分
- Javascript代码不起作用,并将值传递给代码的另一部分
- 将JSON数组的一部分与另一个JSON数组组合在一起
- 为什么有些函数是全局的,而另一些函数是对象的一部分
- 使用一个变量名称作为另一个变量名的一部分
- 在OpenLayers中显示一部分层和另一部分层