- From: nobody <nobody@web3.w3.org>
- Date: Mon, 22 Nov 2004 16:03:02 +0000 (GMT)
- To: public-wcag2-techs@w3.org
checkbox checked
Submission Results:
Technology: Client Side Techniques
Techniques Category: Script techniques
Submitter's Name: Samuel Rinnetmäki
Submitter's Email: samuel@iki.fi
<technique id="UNKNOWN">
<short-name>Popup links with minimal script within markup</short-name>
<applies-to>
<guideline idref="" />
<success-criterion idref="UNKNOWN" />
</guideline
</applies-to>
<task>
<p>Scripting is separated from markup in popup window links</p>
</task>
<description>
Builds upon example http://www.w3.org/TR/2004/WD-WCAG20-SCRIPT-TECHS-20041119/#js-uri
This technique is trying to separate structure (markup) and behaviour (script) from each other. Links that should open in a new window, are not marked with target attribute and don't have onclick event handler. They do, however, have class value 'popup'.
A script function will go trough all links and attach an onclick handler to all links with class="popup". The script could easily be modified to select only e.g. the links with absolute URIs. Or, one could still keep the target attributes but enhance the
</description>
<user-issues>
<affects group="UNKNOWN" />
</user-issues>
<eg-group>
<description>
Two files: popup.js and test.html. The JavaScript file popup.js contains most of the functionality, test.html is just a simple HTML page which includes the popup.js script and contains a single link with class="popup".
</description>
<code><![CDATA[
popup.js:
================================================
var options = 'height=400,width=400,scrollbars=yes,resizable=yes';
function openNewWindow(href, target, options) {
var w = window.open(href, target, options);
if (w.focus) {
w.focus();
}
return (w ? false : true);
}
var links = document.getElementsByTagName('a');
function addOnClickHandlers() {
for (var i=0; i<links.length; i++) {
if (links[i].className == 'popup') {
var href = links[i].href;
var target = 'myPopUpWindowName';
var func = function() { return openNewWindow(href, target, options);};
links[i].onclick = func;
}
}
}
window.onload = addOnClickHandlers;
================================================
test.html (or any other name you prefer):
================================================
<html>
<title>Popup link proof of concept</title>
<script type="text/javascript" src="./popup.js">
</script>
<a href="register.php" class="popup">register here</a>
</html>
================================================
]]</code>
<ua-issues>
</ua-issues>
</eg-group>
<resources>
<see-also><br /><p>
<loc href="http://www.w3.org/TR/2004/WD-WCAG20-SCRIPT-TECHS-20041119/#js-uri" >javascript: URIs </loc>
</p><br /></see-also>
</resources>
</technique>
Additional Notes:
The example contains some fixed strings like the 'popup' class name, 'myPopUpWindowName' target window name and the options for the new window. You may want to change these or choose a different approach altogether.
Received on Monday, 22 November 2004 16:03:03 UTC