Hi again, Here's a replacement mwd.xml that takes a /p[opup] switch -- can you try it out and see if it works for you, Glenn? XmlHttp is acting up on my machine, so I can't see if it works properly, but I've just copied and pasted your code into a separate function in mwd.
Cheers, - Kim > -----Original Message----- > From: [EMAIL PROTECTED] > [mailto:[EMAIL PROTECTED] On Behalf Of > Glenn Carr > Sent: den 1 februari 2006 17:41 > To: dqsd-users@lists.sourceforge.net > Subject: [DQSD-Users] new mwdx search (Merriam-Webster > search, results in a pop-up window) > > Hey all, > > Attached is a modified Merriam-Webster search that displays > the results in a pop-up window. It's not perfect (for one, > links don't work from the popup window), but it makes me happy :) > > I don't have CVS installed anywhere convenient right now, so > if someone could check this in, I'd appreciate it.
<search function="mwd"> <name>Merriam-Webster Dictionary</name> <description> Search for word definitions.<br/> <div class="helpboxDescLabels">Examples:</div> <table class="helpboxDescTable"> <tr><td>mwd idempotent</td></tr> <tr><td>mwd /popup idempotent</td></tr> </table> </description> <category>Reference<category>Language</category></category> <link>http://www.m-w.com/</link> <form name="mwdf" action="http://www.m-w.com/cgi-bin/dictionary" method="post"> <input type="hidden" name="book" value="Dictionary"/> <input type="hidden" name="va"/> </form> <script><![CDATA[ function mwd(q) { if( nullArgs("mwd",q) ) return false; var args = parseArgs(q, "popup"); if( args.switches.length > 0 ) { mwdx(args.q) } else { document.mwdf.va.value = args.q; submitForm(mwdf); } } function mwdx(q) { var xmlHttp = new ActiveXObject("Microsoft.XmlHttp"); xmlHttp.open("GET", "http://www.m-w.com/dictionary/" + q, false); xmlHttp.send(); var sBody = xmlHttp.responseText.replace( /[\r\n]/gi, "" ); var re = /(Main Entry:.+)<img src="\/images\/pixt\.gif".+More Information on/mig; var results = re.exec( sBody ); var windowW = 500; if ( results != null ) { var html = results[ 1 ].replace( /(src=")/gi, "src=\"http://www.m-w.com" ).replace( /(href="\/)/gi, "href=\"http://www.m-w.com/" ); html = html.replace( new RegExp( String.fromCharCode(65535), "g" ), '-' ); // weirdness html = html.replace( /<font size="-1">([^<]+)<\/font>/gi, "$1" ); } else { results = /(Suggestions for.+<\/PRE>)/ig.exec( sBody ); if ( results != null ) { var html = results[ 1 ].replace( /(src=")/gi, "src=\"http://www.m-w.com" ).replace( /(href=")/gi, "href=\"http://www.m-w.com" ).replace( /<\/a>/g, '</a>\r\n' ); } else { windowW = 200; var html = '<center><b>' + q + '</b> not found</center>'; } } var dictPopup = window.createPopup(); var dictPopupBody = dictPopup.document.body; dictPopupBody.innerHTML = '<table style="font-size: 70%; border: inset 2px" height="100%"><tr><td>' + html + "</td></tr></table>"; // dictPopup.document.head.base = "http://www.m-w.com/"; dictPopup.document.body.style.border="outset 2px"; dictPopup.document.body.style.padding="1px 1px; background: navy"; dictPopup.document.body.style.background='menu'; dictPopup.document.body.style.overflowY='auto'; dictPopup.document.body.style.fontFamily='Verdana'; // Temporarily show the popup to determine the proper final height for the popup. dictPopup.show(0, 0, windowW, 0); var windowH = dictPopupBody.scrollHeight + 6; dictPopup.hide(); windowH = windowH > window.screen.height-100 ? window.screen.height-100 : windowH; dictPopup.show((buttonalign == "left" ? 0 : document.body.clientWidth - windowW), -windowH, windowW, windowH, document.body); } ]]></script> <copyright> Copyright (c) 2006 David Bau, Glenn Carr and Kim Gräsman Distributed under the terms of the GNU Public License, Version 2 (http://www.gnu.org/copyleft/gpl.txt) </copyright> </search>