Javascript 打开新窗口的JQuery链接

Javascript 打开新窗口的JQuery链接,javascript,jquery,html,Javascript,Jquery,Html,我正在尝试改进我为我的网站创建的音乐播放器,方法是从浏览器中移动到一个单独的弹出窗口,我创建/操作了我发现的代码,使jQuery获取href值并将其发送到一个新窗口,唯一的问题是单击 jQuery示例: $(文档).ready(函数(){ $(“.playSong”)。单击(函数(){ var url=$(this.attr('href'); var windowName=$(this.attr('id'); 打开(url,windowName,“高度=300,宽度=400”); });

我正在尝试改进我为我的网站创建的音乐播放器,方法是从浏览器中移动到一个单独的弹出窗口,我创建/操作了我发现的代码,使jQuery获取href值并将其发送到一个新窗口,唯一的问题是单击

jQuery示例:


$(文档).ready(函数(){
$(“.playSong”)。单击(函数(){
var url=$(this.attr('href');
var windowName=$(this.attr('id');
打开(url,windowName,“高度=300,宽度=400”);
});
});

或者使用
e.preventDefault()
返回false

$(document).ready(function(){
    $(".playSong").click(function(e){
        e.preventDefault(); // this will prevent the browser to redirect to the href
        // if js is disabled nothing should change and the link will work normally
        var url = $(this).attr('href');
        var windowName = $(this).attr('id');
        window.open(url, windowName, "height=300,width=400");
    });
});

或者使用
e.preventDefault()
返回false

$(document).ready(function(){
    $(".playSong").click(function(e){
        e.preventDefault(); // this will prevent the browser to redirect to the href
        // if js is disabled nothing should change and the link will work normally
        var url = $(this).attr('href');
        var windowName = $(this).attr('id');
        window.open(url, windowName, "height=300,width=400");
    });
});

您需要在单击链接时返回false。详情如下:

    $(document).ready(function(){
        $(".playSong").click(function(){
            var url = $(this).attr('href');
            var windowName = $(this).attr('id');

            window.open(url, windowName, "height=300,width=400");
            return false;
        });
    });

您需要在单击链接时返回false。详情如下:

    $(document).ready(function(){
        $(".playSong").click(function(){
            var url = $(this).attr('href');
            var windowName = $(this).attr('id');

            window.open(url, windowName, "height=300,width=400");
            return false;
        });
    });

使用
data-*
属性比将歌曲和艺术家数据存储在ID中要好

<a href="this_page.cfm?song=1" target="_blank" class="playSong" data-info="#artist# - #song#">Play Track</a>

使用
data-*
属性比将歌曲和艺术家数据存储在ID中要好

<a href="this_page.cfm?song=1" target="_blank" class="playSong" data-info="#artist# - #song#">Play Track</a>

以下是您的问题的完整答案

如果禁用javascript或弹出窗口阻止程序处于活动状态,如何使链接在新窗口中工作

$(function(){
  $(".playSong").on("click",function(e){
    var w = window.open(this.href, this.target, "height=300,width=400");
    if (w) e.preventDefault(); // prevent link but only if not blocked
  });
});

以下是您的问题的完整答案

如果禁用javascript或弹出窗口阻止程序处于活动状态,如何使链接在新窗口中工作

$(function(){
  $(".playSong").on("click",function(e){
    var w = window.open(this.href, this.target, "height=300,width=400");
    if (w) e.preventDefault(); // prevent link but only if not blocked
  });
});

我认为你需要防止违约行为我认为你需要防止违约行为你认为哪种方法最好<代码>返回false
e.preventDefault()
?@LeeB
preventDefault()
是jQuery特有的功能<当与jQuery一起使用时,code>return false将执行隐式的
preventDefault()
stopPropagation()
,因此它们并不完全相同,但对于此用途,行为将是相同的。如果有弹出窗口阻止程序,此程序将不会播放歌曲。您认为最好使用哪一个<代码>返回false
e.preventDefault()
?@LeeB
preventDefault()
是jQuery特有的功能<当与jQuery一起使用时,code>return false将执行隐式的
preventDefault()
stopPropagation()
,因此它们并不完全相同,但是对于这种用法,行为将是相同的。如果存在弹出窗口阻止程序,则此函数将不会播放歌曲