DOM 就绪事件之前的 URL 属性

Posted

技术标签:

【中文标题】DOM 就绪事件之前的 URL 属性【英文标题】:URLs attributes BEFORE DOM ready event 【发布时间】:2021-09-16 10:46:44 【问题描述】:

我正在处理这个测试页面:https://www.incaet.it/progetti-edit-2/

如您所见,有两个按钮“_blank”和“_BLANK”,稍后我会解释它们的用途。

由于我正在使用 elementor (wordpress) 编辑此页面,因此我只能为媒体库(您看到的项目)分配图像和 URL,没有 > 声明任何 HTML。目标是在媒体库元素中打开一个带有 URL 的灯箱。为了达到这个目标,我购买了一个 wordpress 插件,声称如果网站上的每个链接具有“_blank”属性,它就会在 lightbox 内打开。

问题是我试图直接用媒体库工具箱分配这个属性,因为我没有直接编码 html,检查“在新选项卡中打开页面”,这个选项给出了一个属性“_BLANK”不起作用,也许这听起来很愚蠢,但只有在它没有加盖时才被接受(这就是我尝试放置 2 个基本 html 按钮的原因)。

为了尝试强制打开灯箱,我尝试了这段代码(这不是实际的解决方案,因为它为每个链接提供了 _blank)

window.onload = function()
        var a = document.getElementsByTagName('a');
        for (var i=0; i<a.length; i++)
            a[i].setAttribute('target', '_blank');
        
    

这不起作用,我被告知这是因为 “灯箱附加到 DOM 就绪事件的元素。它发生在“加载”事件之前。”

您是否知道我可以做些什么来在 DOM 就绪事件之前将此 "_blank" 属性放置到媒体库的 每个 元素上?我一直在努力实现这个结果,但仍然没有运气。

【问题讨论】:

【参考方案1】:

我不确定你想成为什么链接target="_blank",但如果你找到一个可以在它们确实存在时使用的类名,你可以为它们委派一个事件侦听器。

当您运行此代码时,文档上的委托侦听器不需要这些链接存在。

注意DOM ready实际上出现在load之前

类似:

jQuery(document).on('click', '.someLightboxClassName a', function()
   this.target = '_blank';
)

【讨论】:

以上是关于DOM 就绪事件之前的 URL 属性的主要内容,如果未能解决你的问题,请参考以下文章

Day 55(08/15)jquery 操作元素(属性,css,文档处理)

jquery

jquery操作元素

使用jQuery对象:DOM属性CSS尺寸遍历DOM操作事件特效

DOM属性和事件

jQuery——jQuery鼠标事件