MediaWiki talk:Gadget-exlinks.js

Page contents not supported in other languages.
From Wikipedia, the free encyclopedia

Update[edit]

Hi!

Could someone update this gadget to use jQuery and the recommended functions from MW 1.17? It would be something like this:

$( function() {
	var $alinks = mw.util.$content.find( 'a' );
	$alinks.each( function() {
		var $tablink = $( this );
		if ( $tablink.hasClass( 'external' ) && $tablink.attr( 'href' ).indexOf( mw.config.get( 'wgServer' ) ) !== 0 ) {
			$tablink.attr( 'target', '_blank' );
		}
	});
});

After the change, I think it will be possible to change the definition of this gadget to

* exlinks[ResourceLoader|dependencies=mediawiki.util]|exlinks.js

Helder 18:09, 27 July 2011 (UTC)[reply]

Is that not required to be inside a document.ready ? —TheDJ (talkcontribs) 22:04, 31 July 2011 (UTC)[reply]
Yep! And it is. The code $(handler) is equivalent to $(document).ready(handler). Helder 23:22, 31 July 2011 (UTC)[reply]
This does not work. mw.util.$content is null for me. (Is init'ed in a .ready() after mw.util is considered to be init'ed....... —TheDJ (talkcontribs) 21:39, 1 August 2011 (UTC)[reply]
That is weird. On Portuguese Wikibooks it works fine. Besides, if I copy the following to the address bar (here, on English Wikipedia):
javascript:alert( mw.util.$content )
I get "[object Object]", and not null. Helder 12:31, 2 August 2011 (UTC)[reply]
Just replace var $alinks = mw.util.$content.find( 'a' ); with var $alinks = $( '#content' ).find( 'a' );. Edokter (talk) — 20:01, 3 August 2011 (UTC)[reply]
I'll ask Edokter to make this change himself, as he seems to know what this is all about. — Martin (MSGJ · talk) 13:53, 12 September 2011 (UTC)[reply]
Changed the code above, but not making it live before it is tested. Edokter (talk) — 21:25, 12 September 2011 (UTC)[reply]
If TheDJ is using Modern skin that would explain why mw.util.$content doesn't work for him, see mw:Talk:ResourceLoader/Default_modules#mw.util.$content undefined in Modern. — AlexSm 00:54, 13 September 2011 (UTC)[reply]
Can this get deployed with MW 1.18? --Locos epraix ~ Beastepraix 15:10, 1 October 2011 (UTC)[reply]
For the record, mw.util.$content seems to be working on modern skin on MW 1.18, because it is on wmf/1.18wmf1 branch. Helder 13:42, 5 October 2011 (UTC)[reply]
 Done. Tested code in Modern and it works. Edokter (talk) — 14:06, 5 October 2011 (UTC)[reply]

Update 2[edit]

Could someone update this gadget to the current version of mw:Snippets/Open external links in new window? It is compatible with the live preview. Moreover, the new version doesn't use mw.util.$content, so the dependency "mediawiki.util" can be removed from Mediawiki:Gadgets-definition. Helder 17:13, 29 October 2013 (UTC)[reply]

Would prefer you get this code checked by someone, but now  Done — Martin (MSGJ · talk) 10:50, 2 November 2013 (UTC)[reply]

Fix to support Parsoid external links[edit]

Parsoid's HTML+RDFa output doesn't output <a class="external"> for links, it outputs <a rel="mw:ExtLink">.

That means this gadget doesn't work for links in posts on Flow boards, T67243. And as other MediaWiki code switches to use Parsoid to generate HTML, the gadget will not work in other areas.

From the bug, the fix is to change the gadget code's jQuery selector from $('a.external') to $('a.external, a[rel="mw:ExtLink"]').

https://en.wikipedia.org/w/index.php?title=Wikipedia_talk:Flow/Developer_test_page&workflow=rv6622xq0czv15cx is a test post. I confirmed this works with the modified gadget code in User:S Page (WMF)/common.js, and modified the JS of the original snippet on MW.

Cheers,

-- S Page (WMF) (talk) 00:01, 22 May 2014 (UTC)[reply]

 Done. Edokter (talk) — 10:55, 22 May 2014 (UTC)[reply]