簡體   English   中英

jQuery BlockUI阻止外部鏈接

[英]Jquery BlockUI to block external links

當您單擊域不同於.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',
            }
        });

function onClick_handler(e) return false; 防止它執行clicked元素默認操作

編輯

不要在函數末尾阻止它,這將禁用所有鏈接,而是將return false放入if語句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;
}

更改

<a href="http://www.ibm.it/" target="_blank" onClick="onClick_handler(this)">IBM</a>

到IBM

另外,在對blockTheScreen的調用blockTheScreen ,在最里面的if ,添加一個

return false;

在它的結尾

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM