如何让linksblock内的链接在弹窗打开?无法修改原链接
问题解决:让指定容器内的链接在弹窗打开
你的代码无效主要有两个核心问题:
- 未阻止链接的默认跳转行为,浏览器会优先执行原生跳转,弹窗代码被忽略
- 链接地址缺少
http/https协议前缀,window.open会将其识别为当前页面的相对路径,无法正确打开目标站点
修正后的代码
$(".linksblock a").on("click", function(e) { // 阻止浏览器默认跳转动作 e.preventDefault(); var share_link = $(this).prop('href'); // 自动补全协议前缀,避免相对路径问题 if (!/^https?:\/\//i.test(share_link)) { share_link = 'https://' + share_link; } window.open(share_link, "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400"); });
动态加载链接的适配方案
如果这些链接是页面加载完成后动态生成的,需要改用事件委托绑定:
$(document).on("click", ".linksblock a", function(e) { e.preventDefault(); var share_link = $(this).prop('href'); if (!/^https?:\/\//i.test(share_link)) { share_link = 'https://' + share_link; } window.open(share_link, "_blank", "toolbar=yes,scrollbars=yes,resizable=yes,top=500,left=500,width=400,height=400"); });
内容的提问来源于stack exchange,提问作者Mapa
相关产品推荐
相关产品推荐

