DOM 就绪事件之前的 URL 属性

URLs attributes BEFORE DOM ready event

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

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

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

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

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

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

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

您是否知道我可以做些什么来将此 "_blank" 属性放置到媒体库的 every 元素之前 DOM 事件准备好了吗?很长一段时间以来,我一直在努力实现这个结果,但仍然没有运气。

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

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

请注意 DOM ready 实际上出现在 load

之前

类似于:

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