当你点击一个与.com不同的域名的链接时,我正在寻找一种很好的方式来获取阻止屏幕的警报(Jquery BlockUI)并阻止进入外部链接,直到你按OK转到链接或取消以不转到该链接。 但是当我点击链接时,它将打开链接,然后阻止Ui。
<a href="http://www.ibm.it/" target="_blank" onClick="onClick_handler(this)">IBM</a>
function onClick_handler(e) {
var mySource = window.event.srcElement;
if ((mySource.tagName == "A")) {
if (mySource.href.indexOf("com") == -1)
{
blockTheScreen(" ATTENTION YOU ARE EXITING THE .COM WEB SITE"
+ "<button type='button' id='OK' >OK</button>"
+ "<button type='button' id='Cancel' >Cancel</button>"
);
}
function blockTheScreen(fnBlockUiText){
$.blockUI(
{ message: $(fnBlockUiText)
, css: {
backgroundColor: '#ddd',
color: '#00f',
width: '700px',
height: '500px',
padding: '12px',
position: 'fixed',
top: '50%',
left: '50%',
marginTop: '-250px',
marginLeft: '-350px',
}
});
答案 0 :(得分:0)
在function onClick_handler(e)
结束时执行return false;
以阻止其执行所点击元素的默认操作
不要在函数结束时阻止它,这将禁用所有链接,而是在if语句中将return false设置为true ...
if (mySource.href.indexOf("com") == -1)
{
blockTheScreen(" ATTENTION YOU ARE EXITING THE .COM WEB SITE"
+ "<button type='button' id='OK' >OK</button>"
+ "<button type='button' id='Cancel' >Cancel</button>");
return false;
}
答案 1 :(得分:0)
更改
<a href="http://www.ibm.it/" target="_blank" onClick="onClick_handler(this)">IBM</a>
要 IBM
此外,在致电blockTheScreen
后,在最里面的if
,添加
return false;
在它的最后