Javascript DNN开放式&x27;离开现场';在外部链接上单击

Javascript DNN开放式&x27;离开现场';在外部链接上单击,javascript,jquery,dotnetnuke,dotnetnuke-8,Javascript,Jquery,Dotnetnuke,Dotnetnuke 8,我是新手。在网站上尝试了几个不同的例子,但没有成功。我的情况是,我们在整个DNN站点(Evoq 8.5)上都有以下格式的链接 <a href="www.site.com" class="external-link"> 这在我们的环境中不起作用。它直接指向链接的href URL。我相信我们还有其他方法可以做到这一点,但我们的网站上有数百个链接都有我们必须更改的外部链接类,并且必须为具有不同URL的许多链接打开此模式 在函数的第一行中有一个额外的{。这会导致一个错误,jQuery停止执

我是新手。在网站上尝试了几个不同的例子,但没有成功。我的情况是,我们在整个DNN站点(Evoq 8.5)上都有以下格式的链接

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

这在我们的环境中不起作用。它直接指向链接的href URL。我相信我们还有其他方法可以做到这一点,但我们的网站上有数百个链接都有我们必须更改的外部链接类,并且必须为具有不同URL的许多链接打开此模式

在函数的第一行中有一个额外的
{
。这会导致一个错误,jQuery停止执行,e.preventDefault()从未到达,因此链接将被打开。因此,您看不到脚本有错误

其次,我将代码包装在
$(document).ready(function()
)中


最后,如果有人无意中发现了这个问题,我们就知道了。模式很好,但我的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之间的区别。

如果有人偶然发现它,最终解决了这个问题。模式很好,但我的javascript不正确(因为我累了,所以犯了一些愚蠢的错误)。下面是最后的javascript:
$('.external-link').click(function(e) {{
    e.preventDefault();
    var link = (e.relatedTarget).attr('href');
    $("#btnContinue").attr('href', link);
    $("#modalExternalLink").modal('show');
});
$(document).ready(function () {
    $('.external-link').click(function (e) {
        e.preventDefault();

        //rest of the code
    });
});
$(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');
});
});