Jquery BlockUI阻止外部链接

时间:2014-09-18 12:59:04

标签: javascript jquery blockui

当你点击一个与.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',
            }
        });

2 个答案:

答案 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;

在它的最后