2017-03-02 73 views
0

新手在這裏。在網站上嘗試了幾個不同的例子,但沒有任何運氣。我的情況是,我們在整個DNN網站(Evoq 8.5)中都有以下格式的鏈接。DNN打開'離開網站'莫塔爾在外部鏈接點擊

<a href="www.site.com" class="external-link"> 

我試圖打開一個模式是說,你是每次點擊與外部鏈接類的鏈接時離開我們的網站。我也試圖在DNN皮膚文件中做到這一點,所以它適用於所有頁面。這是我現在所擁有的。

模態:

<div id="modalExternalLink" class="modal fade"> 
<div class="modal-dialog"> 
    <div class="modal-content"> 
     <div class="modal-header"> 
      <button type="button" class="close" data-dismiss="modal"><span aria-hidden="true">&times;</span><span class="sr-only">Close</span></button> 
      <span class="modal-title">Thank you for visiting our site.</span> 
     </div> 
     <div class="modal-body"> 
      <p> You are now leaving our website.</p> 
      <div class="button-container"> 
       <button type="button" id="btnContinue" class="btn-continue" style="margin-right:10px;">Continue</button> 
       <button type="button" class="modal-button" data-dismiss="modal">Cancel</button> 
      </div> 
     </div> 
    </div> 
</div> 

試圖表明模態和鏈接的href傳遞到繼續按鈕:

$('.external-link').click(function(e) {{ 
    e.preventDefault(); 
    var link = (e.relatedTarget).attr('href'); 
    $("#btnContinue").attr('href', link); 
    $("#modalExternalLink").modal('show'); 
}); 

這並不在我們的環境中工作。它直接轉到鏈接的href網址。我確信還有其他的方法可以做到這一點,但是我們網站上有數百個鏈接有外部鏈接類,我們將不得不改變,並且這種模式必須打開許多鏈接與不同的URL。

+0

之間的區別最後得出這個結論,如果有人絆倒它。模式很好,但我的JavaScript是不正確的(因爲我累了,有一些愚蠢的錯誤)。這是最後的工作JavaScript: – csunder

回答

0

在函數的第一行中有一個額外的{。這會導致錯誤,jQuery停止執行,e.preventDefault()永遠不會到達,因此鏈接將被打開。因爲你沒有看到腳本有錯誤。

第二我會將代碼包裝在$(document).ready(function()中。

$(document).ready(function() { 
    $('.external-link').click(function (e) { 
     e.preventDefault(); 

     //rest of the code 
    }); 
}); 
0

最後得出這個結論是否有人絆倒它。模式很好,但我的JavaScript是不正確的(因爲我累了,有一些愚蠢的錯誤)。這是最後的工作javascript:

$(document).ready(function(e){ 
$('.external-link').on('click', function (e) { 
e.preventDefault(); 
console.log($(e.currentTarget).attr('href')); 
document.getElementById("btnContinue").setAttribute("onClick", (  "javascript:window.location.href=\"" + $(e.currentTarget).attr('href') + "\"")); 
$('#modalExternalLink').modal('show'); 
}); 
}); 

你很明顯可以去掉控制檯日誌。主要問題是e.relatedTarget未定義,因此我在那裏登錄以監控它。從一點點閱讀這是Bootstrap 2 & 3.