如何在同一选项卡中打开一个特定的外部链接

问题描述 投票:0回答:1

这可以被视为一个 XY 问题。我真正想做的是将查询参数传递给内部链接。 (我真正想要做的是打开所有页面页面,并将隐藏重定向选项设置为true。)

但似乎为了做到这一点,您必须使用带有完整内部链接的外部链接语法。这会产生一个带有箭头的链接,并在新选项卡中打开。这对于真正的外部链接来说很好,但这实际上是使用外部链接语法的内部链接。

我设法通过将链接包装在带有 css 类

div
plainlinks
中来隐藏箭头,效果很好,但链接仍然在新选项卡中打开。

我看到

LocalSettings.php
中有一个名为
$wgExternalLinkTarget
的全局设置,当前设置为
_blank
,这允许在新选项卡中打开外部链接。没关系,我确实希望在新选项卡中打开真正的外部链接,如果可能的话,我只想为这个链接覆盖一次。

我的链接目前如下所示:

<div class="plainlinks">
* [{{fullurl:Special%3AAllPages|hideredirects=1}} All Pages]
</div>

(搜索这个,没有结束的人想要在new选项卡中打开东西,但我找不到在same选项卡中打开链接的东西。)

mediawiki
1个回答
0
投票

如果 URL 与您的 wiki 具有相同的域,您可以使用 JavaScript 事件监听器来更改

target
属性。这需要您修改相应的
MediaWiki:Skin.js
页面。

// jQuery
$('body').on('click', 'a[href]', function(event) {
    const url = new URL(this.href);
    
    if (url.host === 'your.domain.here') {
        this.target = '_self';
    }
});

// Or vanilla JavaScript
document.body.addEventListener('click', event => {
    const element = event.target;
    
    if (!element.matches('a[href]')) {
        return;
    }
    
    const url = new URL(element.href);
    
    if (url.host === 'your.domain.here') {
        element.target = '_self';
    }
});
© www.soinside.com 2019 - 2024. All rights reserved.