1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>YUI Library Examples: Rich Text Editor: Editor with Custom Image Browser</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../assets/yui.css" >
<style>
/*Supplemental CSS for the YUI distribution*/
#custom-doc { width: 95%; min-width: 950px; }
#pagetitle {background-image: url(../../assets/bg_hd.gif);}
</style>
<link rel="stylesheet" type="text/css" href="../../assets/dpSyntaxHighlighter.css">
<!--Script and CSS includes for YUI dependencies on this page-->
<link rel="stylesheet" type="text/css" href="../../build/menu/assets/skins/sam/menu.css" />
<link rel="stylesheet" type="text/css" href="../../build/button/assets/skins/sam/button.css" />
<link rel="stylesheet" type="text/css" href="../../build/container/assets/skins/sam/container.css" />
<link rel="stylesheet" type="text/css" href="../../build/editor/assets/skins/sam/editor.css" />
<script type="text/javascript" src="../../build/yuiloader/yuiloader-min.js"></script>
<script type="text/javascript" src="../../build/event/event-min.js"></script>
<script type="text/javascript" src="../../build/dom/dom-min.js"></script>
<script type="text/javascript" src="../../build/animation/animation-min.js"></script>
<script type="text/javascript" src="../../build/element/element-min.js"></script>
<script type="text/javascript" src="../../build/container/container-min.js"></script>
<script type="text/javascript" src="../../build/menu/menu-min.js"></script>
<script type="text/javascript" src="../../build/button/button-min.js"></script>
<script type="text/javascript" src="../../build/editor/editor-min.js"></script>
<!--there is no custom header content for this example-->
<script type="text/javascript">
//enable passthrough of errors from YUI Event:
if ((typeof YAHOO !== "undefined") && (YAHOO.util) && (YAHOO.util.Event)) {
YAHOO.util.Event.throwErrors = true;
}
</script>
</head>
<body id="yahoo-com" class="yui-skin-sam">
<div id="custom-doc" class="yui-t2">
<div id="hd">
<div id="ygunav">
<p><em><a href="http://developer.yahoo.com/yui/">YUI Library Home</a></em></p>
<form action="http://search.yahoo.com/search" id="sitesearchform">
<input name="vs" type="hidden" value="developer.yahoo.com">
<input name="vs" type="hidden" value="yuiblog.com">
<div id="sitesearch">
<label for="searchinput">Site Search (YDN & YUIBlog): </label>
<input type="text" id="searchinput" name="p">
<input type="submit" value="Search" id="searchsubmit" class="ygbt">
</div>
</form> </div>
<div id="ygma"><a href="../../"><img src="../../assets/yui.gif" border="0" height="38"></a></div>
<div id="pagetitle"><h1>YUI Library Examples: Rich Text Editor: Editor with Custom Image Browser</h1></div>
</div>
<div id="bd">
<div id="yui-main">
<div class="yui-b">
<div class="yui-ge">
<div class="yui-u first example">
<div class="promo">
<h1>Rich Text Editor: Editor with Custom Image Browser</h1>
<div class="exampleIntro">
<p>This example will show how to open an "Image Browser" for the YUI Rich Text Editor.</p>
<p><strong>Note</strong>: The "Image Browser" window will probably be blocked by your popup blocker.</p>
<p>Now, click on the "Insert Image" icon (the one outlined in blue) to see the "Image Browser" window.</p>
</div>
<div class="example-container module ">
<div class="hd exampleHd">
<p class="newWindowButton yui-skin-sam"><!--<span id="newWindowLinkx"><span class="first-child">--><a href="imagebrowser_editor_clean.html" target="_blank">View example in new window.</a><!--</span></span>-->
</div> <div id="example-canvas" class="bd">
<!--BEGIN SOURCE CODE FOR EXAMPLE =============================== -->
<style type="text/css" media="screen">
#msgpost_container span.yui-toolbar-insertimage, #msgpost_container span.yui-toolbar-insertimage span.first-child {
border-color: blue;
}
</style>
<textarea id="msgpost">This is a test</textarea>
<script type="text/javascript">
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event,
win = null;
var myEditor = new YAHOO.widget.Editor('msgpost', {
height: '300px',
width: '600px',
dompath: true, //Turns on the bar at the bottom
animate: true //Animates the opening, closing and moving of Editor windows
});
myEditor.on('toolbarLoaded', function() {
//When the toolbar is loaded, add a listener to the insertimage button
this.toolbar.on('insertimageClick', function() {
//Get the selected element
var _sel = this._getSelectedElement();
//If the selected element is an image, do the normal thing so they can manipulate the image
if (_sel && _sel.tagName && (_sel.tagName.toLowerCase() == 'img')) {
//Do the normal thing here..
} else {
//They don't have a selected image, open the image browser window
win = window.open('assets/browser.php', 'IMAGE_BROWSER', 'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,status=0');
if (!win) {
//Catch the popup blocker
alert('Please disable your popup blocker!!');
}
//This is important.. Return false here to not fire the rest of the listeners
return false;
}
}, this, true);
}, myEditor, true);
myEditor.on('afterOpenWindow', function() {
//When the window opens, disable the url of the image so they can't change it
var url = Dom.get(myEditor.get('id') + '_insertimage_url');
if (url) {
url.disabled = true;
}
}, myEditor, true);
myEditor.render();
})();
</script>
<!--END SOURCE CODE FOR EXAMPLE =============================== -->
</div>
</div>
</div>
<h2 class="first">Setting up the Editor's HTML</h2>
<p>Setting up the Editor's HTML is done by creating a <code>textarea</code> control on the page.</p>
<textarea name="code" class="HTML">
<form method="post" action="#" id="form1">
<textarea id="editor" name="editor" rows="20" cols="75">
This is some more test text. <font face="Times New Roman">This is some more test text.
This is some more <b>test <i>text</i></b></font>.
This is some more test text. This is some more test text.
This is some more test text. This is some more test text. This is some more test text.
This is some more test text.
</textarea>
</form>
</textarea>
<h2>Setting up the Editor's Javascript</h2>
<p>Once the <code>textarea</code> is on the page, then initialize the Editor like this:</p>
<textarea name="code" class="JScript">
//The Editor config
var myConfig = {
height: '300px',
width: '600px',
animate: true,
dompath: true
};
//Now let's load the Editor.
var myEditor = new YAHOO.widget.Editor('editor', myConfig);
</textarea>
<h2>Modifying the Insert Image Button</h2>
<p>To do this, we need start after the toolbar is loaded using the <code>toolbarLoaded</code> event.</p>
<p>Now we use the Editor's <code>_getSelectedElement</code> method to see if we have an image selected or not.</p>
<p>If we have an image selected, we don't do anything. But if we don't have one selected, we need to pop open the new window.</p>
<p><strong>Note</strong>: the return false. This will stop the event from continuing, the Editor will not attempt to add a blank image.</p>
<textarea name="code" class="JScript">
myEditor.on('toolbarLoaded', function() {
//When the toolbar is loaded, add a listener to the insertimage button
this.toolbar.on('insertimageClick', function() {
//Get the selected element
var _sel = this._getSelectedElement();
//If the selected element is an image, do the normal thing so they can manipulate the image
if (_sel && _sel.tagName && (_sel.tagName.toLowerCase() == 'img')) {
//Do the normal thing here..
} else {
//They don't have a selected image, open the image browser window
win = window.open('assets/browser.php', 'IMAGE_BROWSER',
'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,status=0');
if (!win) {
//Catch the popup blocker
alert('Please disable your popup blocker!!');
}
//This is important.. Return false here to not fire the rest of the listeners
return false;
}
}, this, true);
}, myEditor, true);
</textarea>
<h2>Inserting the image into the Editor from the popup window</h2>
<p>From the popup window, we gain access to the Editor using the <code>static</code> method <code>YAHOO.widget.EditorInfo.getEditorById()</code>.
Calling it from <code>window.opener</code> will give us a usable reference to the Editor in the other browser window.</p>
<p>How you get the image to display and how you allow the end user to select an image is up to your implementation. Here we are simply applying a click listener to the images parent container and getting a reference to the image from the event.</p>
<p>Once we have a reference or a URL to the image we want to insert, we simply call the Editors <code>execCommand</code> for insert image and close the window.</p>
<textarea name="code" class="JScript">
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event,
myEditor = window.opener.YAHOO.widget.EditorInfo.getEditorById('msgpost');
//Get a reference to the editor on the other page
//Add a listener to the parent of the images
Event.on('images', 'click', function(ev) {
var tar = Event.getTarget(ev);
//Check to see if we clicked on an image
if (tar && tar.tagName && (tar.tagName.toLowerCase() == 'img')) {
//Focus the editor's window
myEditor._focusWindow();
//Fire the execCommand for insertimage
myEditor.execCommand('insertimage', tar.getAttribute('src', 2));
//Close this window
window.close();
}
});
//Internet Explorer will throw this window to the back, this brings it to the front on load
Event.on(window, 'load', function() {
window.focus();
});
})();
</textarea>
<h2>Keeping them from editing the URL of the image</h2>
<p>This little piece of code will set the image url field in the Image Property Editor to disabled.</p>
<p>This will prevent the user from changing the images url.</p>
<textarea name="code" class="JScript">
myEditor.on('afterOpenWindow', function() {
//When the window opens, disable the url of the image so they can't change it
var url = Dom.get(myEditor.get('id') + '_insertimage_url');
if (url) {
url.disabled = true;
}
}, myEditor, true);
</textarea>
<h2>Full Javascript Source for this window</h2>
<textarea name="code" class="JScript">
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event,
win = null;
var myEditor = new YAHOO.widget.Editor('msgpost', {
height: '300px',
width: '522px',
dompath: true, //Turns on the bar at the bottom
animate: true //Animates the opening, closing and moving of Editor windows
});
myEditor.on('toolbarLoaded', function() {
//When the toolbar is loaded, add a listener to the insertimage button
this.toolbar.on('insertimageClick', function() {
//Get the selected element
var _sel = this._getSelectedElement();
//If the selected element is an image, do the normal thing so they can manipulate the image
if (_sel && _sel.tagName && (_sel.tagName.toLowerCase() == 'img')) {
//Do the normal thing here..
} else {
//They don't have a selected image, open the image browser window
win = window.open('assets/browser.php', 'IMAGE_BROWSER',
'left=20,top=20,width=500,height=500,toolbar=0,resizable=0,status=0');
if (!win) {
//Catch the popup blocker
alert('Please disable your popup blocker!!');
}
//This is important.. Return false here to not fire the rest of the listeners
return false;
}
}, this, true);
}, myEditor, true);
myEditor.on('afterOpenWindow', function() {
//When the window opens, disable the url of the image so they can't change it
var url = Dom.get(myEditor.get('id') + '_insertimage_url');
if (url) {
url.disabled = true;
}
}, myEditor, true);
myEditor.render();
})();
</textarea>
<h2>Full Javascript Source for the Image Browser Window</h2>
<textarea name="code" class="JScript">
(function() {
var Dom = YAHOO.util.Dom,
Event = YAHOO.util.Event,
myEditor = window.opener.YAHOO.widget.EditorInfo.getEditorById('msgpost');
//Get a reference to the editor on the other page
//Add a listener to the parent of the images
Event.on('images', 'click', function(ev) {
var tar = Event.getTarget(ev);
//Check to see if we clicked on an image
if (tar && tar.tagName && (tar.tagName.toLowerCase() == 'img')) {
//Focus the editor's window
myEditor._focusWindow();
//Fire the execCommand for insertimage
myEditor.execCommand('insertimage', tar.getAttribute('src', 2));
//Close this window
window.close();
}
});
})();
</textarea>
<h2>Configuration for This Example</h2>
<p>You can load the necessary JavaScript and CSS for this example from Yahoo's servers. <a href="http://developer.yahoo.com/yui/articles/hosting/?event&dom&animation&element&container&menu&button&editor&MIN#configure">Click here to load the YUI Dependency Configurator with all of this example's dependencies preconfigured</a>.</p>
</div>
<div class="yui-u">
<div id="loggerModule" class="yui-skin-sam">
<h3 class="firstContent">YUI Logger Output:</h3>
<div id="loggerGloss"><p><strong>Note:</strong> Logging and debugging is currently turned off for this example.</p>
<p class="loggerButton"><span id="loggerLink"><span class="first-child"><a href="imagebrowser_editor_log.html">Reload with logging<br />
and debugging enabled.</a></span></span></p></div>
</div>
<div id="examples">
<h3>Rich Text Editor Examples:</h3>
<div id="exampleToc">
<ul>
<li><a href='../editor/flickr_editor.html'>Flickr Image Search</a></li><li><a href='../editor/cal_editor.html'>Calendar Plugin</a></li><li><a href='../editor/icon_editor.html'>Icon Insertion</a></li><li><a href='../editor/switch_editor.html'>Plain Text Switcher</a></li><li><a href='../editor/post_editor.html'>Editor Data Post with Connection Manager</a></li><li><a href='../editor/skinning_editor.html'>Skinning the Editor</a></li><li><a href='../editor/toolbar_editor.html'>Default Toolbar Config</a></li><li><a href='../editor/code_editor.html'>Code Editor</a></li><li><a href='../editor/tabview_editor.html'>Editor inside a Tabview Control</a></li><li><a href='../editor/multi_editor.html'>One Editor, Multiple Edit Areas</a></li><li class='selected'><a href='../editor/imagebrowser_editor.html'>Editor with Custom Image Browser</a></li><li><a href='../editor/simple_editor.html'>Simple Editor — Basic Buttons</a></li><li><a href='../editor/simple_adv_editor.html'>Simple Editor — Advanced Buttons</a></li><li><a href='../editor/editor_adv_editor.html'>Editor — Basic Buttons</a></li><li><a href='../editor/autoheight_editor.html'>Editor Auto Adjusting Height</a></li><li><a href='../editor/dialog_editor.html'>Editor in a Dialog Control</a></li><li><a href='../resize/rte_resize.html'>Custom resizing for the Rich Text Editor (included with examples for Resize Utility)</a></li><li><a href='../layout/calrte_layout.html'>Simple Application (included with examples for Layout Manager)</a></li><li><a href='../layout/adv_layout.html'>Complex Application (included with examples for Layout Manager)</a></li> </ul>
</div>
</div>
<div id="module">
<h3>More Rich Text Editor Resources:</h3>
<ul>
<li><a href="http://developer.yahoo.com/yui/editor/">User's Guide</a> (external)</li>
<li><a href="../../docs/module_editor.html">API Documentation</a></li>
<li><a href="http://yuiblog.com/assets/pdf/cheatsheets/editor.pdf">Cheat Sheet PDF</a> (external)</li></ul>
</div>
</div>
</div>
</div>
</div>
<div class="yui-b" id="tocWrapper">
<!-- TABLE OF CONTENTS -->
<div id="toc">
<ul>
<li class="sect first">Yahoo! UI Library</li><li class="item"><a title="The Yahoo! User Interface Library (YUI)" href="http://developer.yahoo.com/yui/">Home (external)</a></li><li class="item"><a title="The Yahoo! User Interface Blog" href="http://yuiblog.com">YUIBlog (external)</a></li><li class="item"><a title="YUILibrary.com hosts the YUI community forums" href="http://yuilibrary.com/forum/">YUI Discussion Forum (external)</a></li><li class="item"><a title="The YUI Library source can be checked out from GitHub" href="http://github.com/yui/">YUI on GitHub</a></li><li class="item"><a title="Instantly searchable API documentation for the entire YUI library." href="../../docs/index.html">API Documentation</a></li><li class="item"><a title="Examples of every YUI utility and control in action" href="../../examples/">Functional Examples</a></li><li class="item"><a title="Videos and podcasts from the YUI Team and from the Yahoo! frontend engineering community." href="http://developer.yahoo.com/yui/theater/">YUI Theater (external)</a></li><li class="item"><a title="YUI is free and open, offered under a BSD license." href="http://developer.yahoo.com/yui/license.html">YUI License (external)</a></li><li class="sect">YUI Functional Examples</li><li class="item"><a title="The YUI Animation Utility - Functional Examples" href="../../examples/animation/index.html">Animation</a></li><li class="item"><a title="The YUI AutoComplete Control - Functional Examples" href="../../examples/autocomplete/index.html">AutoComplete</a></li><li class="item"><a title="The YUI Browser History Manager - Functional Examples" href="../../examples/history/index.html">Browser History Manager</a></li><li class="item"><a title="The YUI Button Control - Functional Examples" href="../../examples/button/index.html">Button</a></li><li class="item"><a title="The YUI Calendar Control - Functional Examples" href="../../examples/calendar/index.html">Calendar</a></li><li class="item"><a title="The YUI Carousel Control - Functional Examples" href="../../examples/carousel/index.html">Carousel</a></li><li class="item"><a title="The YUI Charts Control - Functional Examples" href="../../examples/charts/index.html">Charts</a></li><li class="item"><a title="The YUI Color Picker Control - Functional Examples" href="../../examples/colorpicker/index.html">Color Picker</a></li><li class="item"><a title="The YUI Cookie Utility - Functional Examples" href="../../examples/cookie/index.html">Cookie</a></li><li class="item"><a title="The YUI Connection Manager (AJAX) - Functional Examples" href="../../examples/connection/index.html">Connection Manager</a></li><li class="item"><a title="The YUI Container Family (Module, Overlay, Tooltip, Panel, Dialog, SimpleDialog) - Functional Examples" href="../../examples/container/index.html">Container</a></li><li class="item"><a title="The YUI DataTable Control - Functional Examples" href="../../examples/datatable/index.html">DataTable</a></li><li class="item"><a title="The YUI Dom Collection - Functional Examples" href="../../examples/dom/index.html">Dom</a></li><li class="item"><a title="The YUI Drag & Drop Utility - Functional Examples" href="../../examples/dragdrop/index.html">Drag & Drop</a></li><li class="item"><a title="The YUI Event Utility - Functional Examples" href="../../examples/event/index.html">Event</a></li><li class="item"><a title="The YUI Get Utility - Functional Examples" href="../../examples/get/index.html">Get</a></li><li class="item"><a title="The YUI ImageCropper Control - Functional Examples" href="../../examples/imagecropper/index.html">ImageCropper</a></li><li class="item"><a title="The YUI ImageLoader Utility - Functional Examples" href="../../examples/imageloader/index.html">ImageLoader</a></li><li class="item"><a title="The YUI JSON Utility - Functional Examples" href="../../examples/json/index.html">JSON</a></li><li class="item"><a title="The YUI Layout Manager - Functional Examples" href="../../examples/layout/index.html">Layout Manager</a></li><li class="item"><a title="The YUI Logger Control - Functional Examples" href="../../examples/logger/index.html">Logger</a></li><li class="item"><a title="The YUI Menu Control - Functional Examples" href="../../examples/menu/index.html">Menu</a></li><li class="item"><a title="The YUI Paginator - Functional Examples" href="../../examples/paginator/index.html">Paginator</a></li><li class="item"><a title="The YUI Profiler Utility - Functional Examples" href="../../examples/profiler/index.html">Profiler</a></li><li class="item"><a title="The YUI ProfileViewer Control - Functional Examples" href="../../examples/profilerviewer/index.html">ProfilerViewer</a></li><li class="item"><a title="The YUI ProgressBar Control - Functional Examples" href="../../examples/progressbar/index.html">ProgressBar</a></li><li class="item"><a title="The YUI Resize Utility - Functional Examples" href="../../examples/resize/index.html">Resize</a></li><li class="selected "><a title="The YUI Rich Text Editor - Functional Examples" href="../../examples/editor/index.html">Rich Text Editor</a></li><li class="item"><a title="The YUI Selector Utility - Functional Examples" href="../../examples/selector/index.html">Selector</a></li><li class="item"><a title="The YUI Slider Control - Functional Examples" href="../../examples/slider/index.html">Slider</a></li><li class="item"><a title="The YUI Storage Utility - Functional Examples" href="../../examples/storage/index.html">Storage</a></li><li class="item"><a title="The YUI SWF Utility - Functional Examples" href="../../examples/swf/index.html">SWF</a></li><li class="item"><a title="The YUI SWFStore Utility - Functional Examples" href="../../examples/swfstore/index.html">SWFStore</a></li><li class="item"><a title="The YUI Stylesheet Utility - Functional Examples" href="../../examples/stylesheet/index.html">Stylesheet</a></li><li class="item"><a title="The YUI TabView Control - Functional Examples" href="../../examples/tabview/index.html">TabView</a></li><li class="item"><a title="The YUI TreeView Control - Functional Examples" href="../../examples/treeview/index.html">TreeView</a></li><li class="item"><a title="The YUI Uploader Utility - Functional Examples" href="../../examples/uploader/index.html">Uploader (experimental)</a></li><li class="item"><a title="The YUI YAHOO Global Object - Functional Examples" href="../../examples/yahoo/index.html">YAHOO Global Object</a></li><li class="item"><a title="The YUI Loader Utility - Functional Examples" href="../../examples/yuiloader/index.html">YUI Loader</a></li><li class="item"><a title="The YUI Test Utility - Functional Examples" href="../../examples/yuitest/index.html">YUI Test</a></li><li class="item"><a title="YUI Reset CSS - Functional Examples" href="../../examples/reset/index.html">Reset CSS</a></li><li class="item"><a title="YUI Base CSS - Functional Examples" href="../../examples/base/index.html">Base CSS</a></li><li class="item"><a title="YUI Fonts CSS - Functional Examples" href="../../examples/fonts/index.html">Fonts CSS</a></li><li class="item"><a title="YUI Grids CSS - Functional Examples" href="../../examples/grids/index.html">Grids CSS</a></li><li class="sect">YUI Articles on the YUI Website</li><li class="item"><a title="Answers to Frequently Asked Questions about the YUI Library" href="http://developer.yahoo.com/yui/articles/faq/">YUI FAQ (external)</a></li><li class="item"><a title="Yahoo!'s philosophy of Graded Browser Support" href="http://developer.yahoo.com/yui/articles/gbs/">Graded Browser Support (external)</a></li><li class="item"><a title="Reporting Bugs and Making Feature Requests for YUI Components" href="http://developer.yahoo.com/yui/articles/reportingbugs/">Bug Reports/Feature Requests (external)</a></li><li class="item"><a title="Serve YUI source files from Yahoo! -- free, fast, and simple" href="http://developer.yahoo.com/yui/articles/hosting/">Serving YUI Files from Yahoo! (external)</a></li><li class="item"><a title="Best practices for working with web services while protecting user privacy" href="http://developer.yahoo.com/security/">Security Best Practices (external)</a></li></ul>
</div>
</div>
</div><!--closes bd-->
<div id="ft">
<p class="first">Copyright © 2011 Yahoo! Inc. All rights reserved.</p>
<p><a href="http://privacy.yahoo.com/privacy/us/devel/index.html">Privacy Policy</a> -
<a href="http://docs.yahoo.com/info/terms/">Terms of Service</a> -
<a href="http://docs.yahoo.com/info/copyright/copyright.html">Copyright Policy</a> -
<a href="http://careers.yahoo.com/">Job Openings</a></p>
</div>
</div>
<script src="../../assets/syntax.js"></script>
<script src="../../assets/dpSyntaxHighlighter.js"></script>
<script language="javascript">
dp.SyntaxHighlighter.HighlightAll('code');
</script>
<script src='../../assets/YUIexamples.js'></script>
</body>
</html>
|