Hi, trying your function gives me an error from the called function getElementsByClassName(). That is with the original one shipped with MediaWiki 1.13.0 as well as the new one from your link below.
The error is 1) from the original function: Error: oElm.getElementsByTagName is not a function Source File: http://wiki.rockinchina.com/skins/common/wikibits.js?164 Line: 452 which is the line (near to the beginning of that function): var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); 2) from the new function: Error: elm.getElementsByClassName is not a function Source File: http://wiki.rockinchina.com/index.php?title=-&action=raw&smaxage=0&gen=js&useskin=ric Line: 152 which is the line (near to the beginning of that function): var elements = elm.getElementsByClassName(className), What am I doing wrong here? Thanks, Matthias P.S.: I am using Firefox 3, but some IE gave me the same problem. Am Fri, 5 Dec 2008 14:12:43 -0600 schrieb "Walter Mazza" <[EMAIL PROTECTED]>: > oh my! deepest apologies >< > > I quickly typed up that code instead of copy/pasting from our JS file > cause I also have other code in this function I didn't want to add :P > Here is the updated code. > > function ExtLinks() { > var extlinks = getElementsByClassName('extlink'); > for (var i=0, il=extlinks.length; i<il; i++) { > var ele = extlinks[i]; > var link = ele.getElementsByTagName('a')[0]; > if (link) link.setAttribute('target','_blank'); > }; > }; > addOnloadHook(ExtLinks); > > And yes, it runs on page load because we need it to run after the > elements are loaded. :) let me know if it doesnt work. > > @ Platonides: > > Thanks for pointing that out! I must have overlooked that variable > > Walter Mazza > > > On Fri, Dec 5, 2008 at 2:02 PM, Matthias Korn > <[EMAIL PROTECTED]>wrote: > > > Hi, > > > > Am Fri, 5 Dec 2008 12:20:50 -0600 > > schrieb "Walter Mazza" <[EMAIL PROTECTED]>: > > > > [..] > > > Code for [[Template:ExtLink]]: (new page) > > > <span class="extlink">[[{{{1}}}]]</span> > > > > > > Code for [[MediaWiki:Common.js]]: ("append" to page) > > > function ExtLinks() { > > > var extlinks = getElementsByClassName('extlink'); > > > for (var i=0, il=extlinks.length; i<il; i++) { > > > extlinks[i].setAttribute('target','_blank'); > > > }; > > > }; > > > addOnloadHook(ExtLinks); > > > > > > Now whenever we want to make a interwiki link open in a new > > > window, we just use {{ExtLink|Special:Upload}} > > > > > > the function getElementsByClassName should already be defined in > > > the wikibits.js file but if for some reason it is not available, > > > you can get the updated version at > > > > > http://www.robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/ > > > > I tried your JavaScript function, which seemed the way to go for me > > (just without the template around it). But, somehow, it is not > > working. > > > > Yes, I force reloaded. > > Yes, I have getElementsByClassName. > > > > The method seems to be executed onLoad (I inserted an alert()), but > > links still open in the same window. Also, while looking at the > > method: isn't it rather adding the target-attribute to the span-tag > > than to the link itself? Without trying it, this seems suspicious. > > > > I also checked the DOM (with Firebug) and the target-attribute of > > the link is empty (don't know if it should be there though). > > > > Thanks for your help, > > Matthias > > > > _______________________________________________ > > MediaWiki-l mailing list > > [email protected] > > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > > > _______________________________________________ > MediaWiki-l mailing list > [email protected] > https://lists.wikimedia.org/mailman/listinfo/mediawiki-l > -- Rock in China http://wiki.rockinchina.com/ http://www.rockinchina.com/ _______________________________________________ MediaWiki-l mailing list [email protected] https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
