MediaWiki talk:Gadget-exlinks.js

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

Update

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

]

Is that not required to be inside a document.ready ? —TheDJ (talkcontribs) 22:04, 31 July 2011 (UTC)[reply]
Yep! And it is. ]
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. ]
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. ]
 Done. Tested code in Modern and it works. Edokter (talk) — 14:06, 5 October 2011 (UTC)[reply]

Update 2

Could someone update this gadget to the

]

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

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,

--

]

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