SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
Developing Context-sensitive
Help for Web Applications
Scott DeLoach
Founder, ClickStart
Embedded UA consultant and trainer
Certified Instructor – Flare | Captivate | RoboHelp
scott@clickstart.net
www.clickstart.net
© 2008 ClickStart, Inc. All rights reserved.
Overview
How to create context-sensitive…
 external help
 embedded UA
using…
 JavaScript (JS)
 Active Server Pages (ASP)
 Asynchronous JavaScript with XMLHttpRequest (AJAX)
Linking an application to a help system
 Hard-coding
 Mapping with a header file
 “Auto-mapping”
Sample Application
Field-level Help
Page-level Help
CSH using JavaScript – hard-coding links
<a href="#" onClick="openHelp('thispage.htm')">Help</a>
<script>
function openHelp(page) {
helpWin = window.open(page,'helpwin','toolbar=0,location=0, 
directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=600,height=400');
setTimeout('helpWin.focus();',250);
}
</script>
Hard-coding links - pros and cons
Pros
 Little work for help author
 Simple solution for small applications
Cons
 A lot of work for application developer
 Doesn't scale well for large applications
CSH using JS – mapping page-level help
<a href="#" onClick="MyWebHelp_CSH.htm#AppPage.htm">
<img src="fieldhelp.gif" width="18" height="18" border="0"></a>
OR
<a href="#" onClick="MyWebHelp_CSH.htm#1000">
<img src="fieldhelp.gif" width="18" height="18" border="0"></a>
CSH using JS – mapping help links
Header (“map”) file
#define thispage 1000
#define thispage_projectnumber 1100
#define anotherpage 2000
Alias file
<Map Name="thispage" Link= "/Content/thishelppage.htm" />
<Map Name="thispage_projectnumber" Link=
"/Content/projectnumber.htm" />
<Map Name=“anotherpage" Link= "/Content/thishelppage.htm" />
Mapped help links – working with developers
Developer
 Usually created the IDs
Help Author
 Maps the IDs to numbers (stored in header file)
 Maps numbers to topic filenames (stored in alias file)
Both
 Share header file
CSH using JS – “auto-mapped” page-level help
<script>
function openCSHelp() {
helpurl = location.href;
begin=helpurl.lastIndexOf('/');
begin = begin + 1;
end=helpurl.lastIndexOf('m');
end=end + 1;
helpurl = "h_" + helpurl.substring(begin, end);
helpWin =window.open(helpurl,'CShelpwin','toolbar=0, 
location=0, directories=0,status=0,menubar=0,scrollbars=0, 
resizable=0, width=300,height=200');
setTimeout('helpWin.focus();',250);
}
</script>
CSH using JS - “auto-mapped” field-level help
<a href="#" onClick="openCSFieldHelp('ProjectNumber')">
<img src="fieldhelp.gif" width="18" height="18" border="0"></a>
<script>
function openCSFieldHelp(id) {
helpurl = "h_" + id + ".htm";
helpWin =window.open(helpurl,'CShelpwin','toolbar=0,location=0,directories=0, 
status=0, menubar=0,scrollbars=0, resizable=0,width=300,height=200');
setTimeout('helpWin.focus();',250);
}
</script>
“Auto-mapped” links – working with developers
 Help filenames must match application filenames (h_
+ pagename.htm)
 Same code for all page-level Help
 Field help requires each field to have a name
CSH using ASP
Field-level Help
Page-level Help
CSH using ASP - field-level help
JavaScript Code to Open the Help
<a href="#" onClick="openFieldHelp('ProjectNumber')">
<img src="fieldhelp.gif" width="18" height="18" border="0"></a>
<script>
function openFieldHelp(topic) {
helpWin=window.open('fieldhelp.asp?' +
topic,'helpwin','toolbar=0,location=0, 
directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=600, 
height=400');
}
</script>
CSH using ASP - field-level help
VBScript Code to Open the Database
Dim objConn
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" & Server.MapPath("dbfieldhelp.mdb")
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open "Tutorial", objConn, , , adCmdTable
CSH using ASP - field-level help
 "HlpText" is used to store defaults.
 "HlpTextCustom" is used to store modified help topics.
CSH using ASP - field-level help
Code to Pull the Field Help from the Database
Do While Not objRS.EOF
If Request.QueryString = objRS("FieldID") Then
If objRS("HlpTextCustom") <> "" Then
Response.Write "<b>"& objRS("FieldLabel") &
"</b><br> " & objRS("HlpTextCustom")
Else
Response.Write "<b>"& objRS("FieldLabel") &
"</b><br> " & objRS("HlpText")
End If
End If
objRS.MoveNext
Loop
CSH using ASP - working with developers
 Help filenames can have any name
 Field help requires separate help icons for fields
Creating context-sensitive embedded UA
 Can be created for fields or pages
 Can be created using:
 DIVs or spans
 iFrames
 AJAX
 Each context-sensitive element needs an ID
 JavaScript method: getElementById
Opening embedded UA - demo
Opening embedded UA - demo
Opening embedded UA - divs
Embedded UA
<div id="helpPane">UA content</div>
JavaScript Code
function toggleUA() {
if (document.getElementById('helpPane').style.display=="block") {
document.getElementById('helpPane').style.display = "none";
}
else {
document.getElementById('helpPane').style.display = "block";
} }
Opening embedded UA - iFrame
Embedded UA
<div id="helpPane"><iframe src="h_myApp.htm"></iframe></div>
JavaScript Code
function toggleUA() {
if (document.getElementById('helpPane').style.display=="block") {
document.getElementById('helpPane').style.display = "none";
}
else {
document.getElementById('helpPane').style.display = "block";
} }
Opening embedded UA - AJAX
Embedded UA
<div id="helpPane></div>
JavaScript Code
function toggleUA() {
if (document.getElementById('helpPane').style.display=="block") {
document.getElementById('helpPane').style.display = "none"; }
else {
xmlhttp.open("GET", "h_myApp.htm",true);
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4) {
document.getElementById('helpPane').innerHTML = xmlhttp.responseText;
document.getElementById('helpPane').style.display = "block";
} } xmlhttp.send(null) } }
Opening embedded UA - AJAX
JavaScript Code to use XMLHttpRequest (IE specific)
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
xmlhttp = false;
} }
@end @*/
www.clickstart.net
Scott DeLoach
Founder, ClickStart
Embedded UA consultant and trainer
Certified Instructor, Flare | RoboHelp | Captivate
scott@clickstart.net
404.520.0003
www.clickstart.net
Questions?

Contenu connexe

Tendances

Artdm170 Week4 Java Script Effects
Artdm170 Week4 Java Script EffectsArtdm170 Week4 Java Script Effects
Artdm170 Week4 Java Script Effects
Gilbert Guerrero
 
CT presentatie JQuery 7.12.11
CT presentatie JQuery 7.12.11CT presentatie JQuery 7.12.11
CT presentatie JQuery 7.12.11
virtualsciences41
 

Tendances (20)

CSS3 Takes on the World
CSS3 Takes on the WorldCSS3 Takes on the World
CSS3 Takes on the World
 
Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015Front End Tooling and Performance - Codeaholics HK 2015
Front End Tooling and Performance - Codeaholics HK 2015
 
Responsive Websites
Responsive WebsitesResponsive Websites
Responsive Websites
 
The Future of CSS with Web Components
The Future of CSS with Web ComponentsThe Future of CSS with Web Components
The Future of CSS with Web Components
 
Responsive WordPress workflow
Responsive WordPress workflowResponsive WordPress workflow
Responsive WordPress workflow
 
Atomic design con pattern lab
Atomic design con pattern labAtomic design con pattern lab
Atomic design con pattern lab
 
Responsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNNResponsive & Responsible Web Design in DNN
Responsive & Responsible Web Design in DNN
 
Our application got popular and now it breaks
Our application got popular and now it breaksOur application got popular and now it breaks
Our application got popular and now it breaks
 
Mobile Web Development
Mobile Web DevelopmentMobile Web Development
Mobile Web Development
 
“Good design is obvious. Great design is transparent.” — How we use Bootstrap...
“Good design is obvious. Great design is transparent.” — How we use Bootstrap...“Good design is obvious. Great design is transparent.” — How we use Bootstrap...
“Good design is obvious. Great design is transparent.” — How we use Bootstrap...
 
jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009jQuery For Beginners - jQuery Conference 2009
jQuery For Beginners - jQuery Conference 2009
 
Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...Responsive design: techniques and tricks to prepare your websites for the mul...
Responsive design: techniques and tricks to prepare your websites for the mul...
 
jQuery Mobile - Desenvolvimento para dispositivos móveis
jQuery Mobile - Desenvolvimento para dispositivos móveisjQuery Mobile - Desenvolvimento para dispositivos móveis
jQuery Mobile - Desenvolvimento para dispositivos móveis
 
Artdm170 Week4 Java Script Effects
Artdm170 Week4 Java Script EffectsArtdm170 Week4 Java Script Effects
Artdm170 Week4 Java Script Effects
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
 
Geekspeak: Javascript
Geekspeak: JavascriptGeekspeak: Javascript
Geekspeak: Javascript
 
CMS 101 Drupal
CMS 101 DrupalCMS 101 Drupal
CMS 101 Drupal
 
JsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery TemplatesJsViews - Next Generation jQuery Templates
JsViews - Next Generation jQuery Templates
 
Desenvolvimento web com jQuery Mobile
Desenvolvimento web com jQuery MobileDesenvolvimento web com jQuery Mobile
Desenvolvimento web com jQuery Mobile
 
CT presentatie JQuery 7.12.11
CT presentatie JQuery 7.12.11CT presentatie JQuery 7.12.11
CT presentatie JQuery 7.12.11
 

Similaire à Developing Context-sensitive Help for Web-based Applications - Scott DeLoach, ClickStart

Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
OSCON Byrum
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
mfrancis
 

Similaire à Developing Context-sensitive Help for Web-based Applications - Scott DeLoach, ClickStart (20)

Prototype UI Intro
Prototype UI IntroPrototype UI Intro
Prototype UI Intro
 
Html5 For Jjugccc2009fall
Html5 For Jjugccc2009fallHtml5 For Jjugccc2009fall
Html5 For Jjugccc2009fall
 
Building iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" DominoBuilding iPhone Web Apps using "classic" Domino
Building iPhone Web Apps using "classic" Domino
 
Prototype UI
Prototype UIPrototype UI
Prototype UI
 
Aplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com BackboneAplicacoes dinamicas Rails com Backbone
Aplicacoes dinamicas Rails com Backbone
 
Learning jQuery made exciting in an interactive session by one of our team me...
Learning jQuery made exciting in an interactive session by one of our team me...Learning jQuery made exciting in an interactive session by one of our team me...
Learning jQuery made exciting in an interactive session by one of our team me...
 
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
netmind - Primer Contacto con el Desarrollo de Aplicaciones para Windows 8
 
Lekhoniya Documentation.pdf
Lekhoniya Documentation.pdfLekhoniya Documentation.pdf
Lekhoniya Documentation.pdf
 
Big Data for each one of us
Big Data for each one of usBig Data for each one of us
Big Data for each one of us
 
How to use lekhoniya.pdf
How to use lekhoniya.pdfHow to use lekhoniya.pdf
How to use lekhoniya.pdf
 
Drupal & javascript
Drupal & javascriptDrupal & javascript
Drupal & javascript
 
Sencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and consSencha Touch basic concepts, pros and cons
Sencha Touch basic concepts, pros and cons
 
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
Uniface Lectures Webinar - Building Responsive Applications with Uniface: Dev...
 
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
OSGi and Spring Data for simple (Web) Application Development - Christian Bar...
 
OSGi and Spring Data for simple (Web) Application Development
OSGi and Spring Data  for simple (Web) Application DevelopmentOSGi and Spring Data  for simple (Web) Application Development
OSGi and Spring Data for simple (Web) Application Development
 
J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012J query b_dotnet_ug_meet_12_may_2012
J query b_dotnet_ug_meet_12_may_2012
 
The Future of CSS with Web components
The Future of CSS with Web componentsThe Future of CSS with Web components
The Future of CSS with Web components
 
20150829 firefox-os-handson
20150829 firefox-os-handson20150829 firefox-os-handson
20150829 firefox-os-handson
 
Html5 and web technology update
Html5 and web technology updateHtml5 and web technology update
Html5 and web technology update
 
WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)
 

Plus de Scott DeLoach

Plus de Scott DeLoach (20)

Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
Formatting Images with CSS in MadCap Flare - MadCap webinar, Scott DeLoach, C...
 
Dynamic User Assistance in MadCap Flare - MadWorld 2019, Scott DeLoach, Click...
Dynamic User Assistance in MadCap Flare - MadWorld 2019, Scott DeLoach, Click...Dynamic User Assistance in MadCap Flare - MadWorld 2019, Scott DeLoach, Click...
Dynamic User Assistance in MadCap Flare - MadWorld 2019, Scott DeLoach, Click...
 
Enhancing MadCap Flare HTML5 Responsive Layout and Design - MadWorld 2019, Sc...
Enhancing MadCap Flare HTML5 Responsive Layout and Design - MadWorld 2019, Sc...Enhancing MadCap Flare HTML5 Responsive Layout and Design - MadWorld 2019, Sc...
Enhancing MadCap Flare HTML5 Responsive Layout and Design - MadWorld 2019, Sc...
 
Microcontent Authoring - Nordic Techkomm 2019, Scott DeLoach, ClickStart
Microcontent Authoring - Nordic Techkomm 2019, Scott DeLoach, ClickStartMicrocontent Authoring - Nordic Techkomm 2019, Scott DeLoach, ClickStart
Microcontent Authoring - Nordic Techkomm 2019, Scott DeLoach, ClickStart
 
CSS Best Practices - tcworld 2018, Scott DeLoach, ClickStart
CSS Best Practices - tcworld 2018, Scott DeLoach, ClickStartCSS Best Practices - tcworld 2018, Scott DeLoach, ClickStart
CSS Best Practices - tcworld 2018, Scott DeLoach, ClickStart
 
Advanced Skinless HTML5 Design with MadCap Flare - MadWorld 2018, Scott DeLoa...
Advanced Skinless HTML5 Design with MadCap Flare - MadWorld 2018, Scott DeLoa...Advanced Skinless HTML5 Design with MadCap Flare - MadWorld 2018, Scott DeLoa...
Advanced Skinless HTML5 Design with MadCap Flare - MadWorld 2018, Scott DeLoa...
 
Extreme CSS Techniques - MadWorld Europe 2018, Scott DeLoach, ClickStart
Extreme CSS Techniques - MadWorld Europe 2018, Scott DeLoach, ClickStartExtreme CSS Techniques - MadWorld Europe 2018, Scott DeLoach, ClickStart
Extreme CSS Techniques - MadWorld Europe 2018, Scott DeLoach, ClickStart
 
Adapting Content for Mobile Devices - tcworld 2017, Scott DeLoach, ClickStart
Adapting Content for Mobile Devices - tcworld 2017, Scott DeLoach, ClickStartAdapting Content for Mobile Devices - tcworld 2017, Scott DeLoach, ClickStart
Adapting Content for Mobile Devices - tcworld 2017, Scott DeLoach, ClickStart
 
Best-in-Class Embedded User Assistance - UA Europe 2017, Scott DeLoach, Click...
Best-in-Class Embedded User Assistance - UA Europe 2017, Scott DeLoach, Click...Best-in-Class Embedded User Assistance - UA Europe 2017, Scott DeLoach, Click...
Best-in-Class Embedded User Assistance - UA Europe 2017, Scott DeLoach, Click...
 
Cutting Edge HTML5 Design with MadCap Flare - tcworld 2017, Scott DeLoach, Cl...
Cutting Edge HTML5 Design with MadCap Flare - tcworld 2017, Scott DeLoach, Cl...Cutting Edge HTML5 Design with MadCap Flare - tcworld 2017, Scott DeLoach, Cl...
Cutting Edge HTML5 Design with MadCap Flare - tcworld 2017, Scott DeLoach, Cl...
 
Extending MadCap Flare HTML5 Targets with jQuery - MadWorld 2016, Scott DeLoa...
Extending MadCap Flare HTML5 Targets with jQuery - MadWorld 2016, Scott DeLoa...Extending MadCap Flare HTML5 Targets with jQuery - MadWorld 2016, Scott DeLoa...
Extending MadCap Flare HTML5 Targets with jQuery - MadWorld 2016, Scott DeLoa...
 
Intro to CSS in MadCap Flare - MadWorld 2016, Scott DeLoach, ClickStart
Intro to CSS in MadCap Flare - MadWorld 2016, Scott DeLoach, ClickStartIntro to CSS in MadCap Flare - MadWorld 2016, Scott DeLoach, ClickStart
Intro to CSS in MadCap Flare - MadWorld 2016, Scott DeLoach, ClickStart
 
Responsive Content: A CSS-based Approach - MadWorld 2015, Scott DeLoach, Clic...
Responsive Content: A CSS-based Approach - MadWorld 2015, Scott DeLoach, Clic...Responsive Content: A CSS-based Approach - MadWorld 2015, Scott DeLoach, Clic...
Responsive Content: A CSS-based Approach - MadWorld 2015, Scott DeLoach, Clic...
 
Best Practices for Going Mobile - MadWorld 2015, Scott DeLoach, ClickStart
Best Practices for Going Mobile - MadWorld 2015, Scott DeLoach, ClickStartBest Practices for Going Mobile - MadWorld 2015, Scott DeLoach, ClickStart
Best Practices for Going Mobile - MadWorld 2015, Scott DeLoach, ClickStart
 
Applying Responsive Web Design (RWD) to UA - WritersUA East 2015, Scott DeLoa...
Applying Responsive Web Design (RWD) to UA - WritersUA East 2015, Scott DeLoa...Applying Responsive Web Design (RWD) to UA - WritersUA East 2015, Scott DeLoa...
Applying Responsive Web Design (RWD) to UA - WritersUA East 2015, Scott DeLoa...
 
Core Web Standards and Competencies - WritersUA East 2015, Scott DeLoach, Cli...
Core Web Standards and Competencies - WritersUA East 2015, Scott DeLoach, Cli...Core Web Standards and Competencies - WritersUA East 2015, Scott DeLoach, Cli...
Core Web Standards and Competencies - WritersUA East 2015, Scott DeLoach, Cli...
 
MadCap Flare: Advanced Table Styles - MadWorld 2014, Scott DeLoach, ClickStart
MadCap Flare: Advanced Table Styles - MadWorld 2014, Scott DeLoach, ClickStartMadCap Flare: Advanced Table Styles - MadWorld 2014, Scott DeLoach, ClickStart
MadCap Flare: Advanced Table Styles - MadWorld 2014, Scott DeLoach, ClickStart
 
How to Not Let Team Authoring Drive You Crazy - MadWorld 2013, Scott DeLoach,...
How to Not Let Team Authoring Drive You Crazy - MadWorld 2013, Scott DeLoach,...How to Not Let Team Authoring Drive You Crazy - MadWorld 2013, Scott DeLoach,...
How to Not Let Team Authoring Drive You Crazy - MadWorld 2013, Scott DeLoach,...
 
Using MadCap Flare Reports and MadCap Analyzer - MadWorld 2013, Scott DeLoach...
Using MadCap Flare Reports and MadCap Analyzer - MadWorld 2013, Scott DeLoach...Using MadCap Flare Reports and MadCap Analyzer - MadWorld 2013, Scott DeLoach...
Using MadCap Flare Reports and MadCap Analyzer - MadWorld 2013, Scott DeLoach...
 
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStartEmbedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
Embedded UA 101 - STC Summit 2013, Scott DeLoach, ClickStart
 

Dernier

Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Sheetaleventcompany
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
Diya Sharma
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
@Chandigarh #call #Girls 9053900678 @Call #Girls in @Punjab 9053900678
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
soniya singh
 

Dernier (20)

Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night StandHot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
Hot Call Girls |Delhi |Hauz Khas ☎ 9711199171 Book Your One night Stand
 
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort ServiceBusty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
Busty Desi⚡Call Girls in Vasundhara Ghaziabad >༒8448380779 Escort Service
 
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Rani Bagh Escort Service Delhi N.C.R.
 
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
Shikrapur - Call Girls in Pune Neha 8005736733 | 100% Gennuine High Class Ind...
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl ServiceRussian Call girl in Ajman +971563133746 Ajman Call girl Service
Russian Call girl in Ajman +971563133746 Ajman Call girl Service
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
₹5.5k {Cash Payment}New Friends Colony Call Girls In [Delhi NIHARIKA] 🔝|97111...
 
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
VVIP Pune Call Girls Sinhagad WhatSapp Number 8005736733 With Elite Staff And...
 
Real Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirtReal Men Wear Diapers T Shirts sweatshirt
Real Men Wear Diapers T Shirts sweatshirt
 
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...(+971568250507  ))#  Young Call Girls  in Ajman  By Pakistani Call Girls  in ...
(+971568250507 ))# Young Call Girls in Ajman By Pakistani Call Girls in ...
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Shahpur Jat Escort Service Delhi N.C.R.
 
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
6.High Profile Call Girls In Punjab +919053900678 Punjab Call GirlHigh Profil...
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service AvailableCall Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
Call Girls Ludhiana Just Call 98765-12871 Top Class Call Girl Service Available
 
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Sukhdev Vihar Delhi 💯Call Us 🔝8264348440🔝
 
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
Hire↠Young Call Girls in Tilak nagar (Delhi) ☎️ 9205541914 ☎️ Independent Esc...
 

Developing Context-sensitive Help for Web-based Applications - Scott DeLoach, ClickStart

  • 1. Developing Context-sensitive Help for Web Applications Scott DeLoach Founder, ClickStart Embedded UA consultant and trainer Certified Instructor – Flare | Captivate | RoboHelp scott@clickstart.net www.clickstart.net © 2008 ClickStart, Inc. All rights reserved.
  • 2. Overview How to create context-sensitive…  external help  embedded UA using…  JavaScript (JS)  Active Server Pages (ASP)  Asynchronous JavaScript with XMLHttpRequest (AJAX)
  • 3. Linking an application to a help system  Hard-coding  Mapping with a header file  “Auto-mapping”
  • 5. CSH using JavaScript – hard-coding links <a href="#" onClick="openHelp('thispage.htm')">Help</a> <script> function openHelp(page) { helpWin = window.open(page,'helpwin','toolbar=0,location=0,  directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=600,height=400'); setTimeout('helpWin.focus();',250); } </script>
  • 6. Hard-coding links - pros and cons Pros  Little work for help author  Simple solution for small applications Cons  A lot of work for application developer  Doesn't scale well for large applications
  • 7. CSH using JS – mapping page-level help <a href="#" onClick="MyWebHelp_CSH.htm#AppPage.htm"> <img src="fieldhelp.gif" width="18" height="18" border="0"></a> OR <a href="#" onClick="MyWebHelp_CSH.htm#1000"> <img src="fieldhelp.gif" width="18" height="18" border="0"></a>
  • 8. CSH using JS – mapping help links Header (“map”) file #define thispage 1000 #define thispage_projectnumber 1100 #define anotherpage 2000 Alias file <Map Name="thispage" Link= "/Content/thishelppage.htm" /> <Map Name="thispage_projectnumber" Link= "/Content/projectnumber.htm" /> <Map Name=“anotherpage" Link= "/Content/thishelppage.htm" />
  • 9. Mapped help links – working with developers Developer  Usually created the IDs Help Author  Maps the IDs to numbers (stored in header file)  Maps numbers to topic filenames (stored in alias file) Both  Share header file
  • 10. CSH using JS – “auto-mapped” page-level help <script> function openCSHelp() { helpurl = location.href; begin=helpurl.lastIndexOf('/'); begin = begin + 1; end=helpurl.lastIndexOf('m'); end=end + 1; helpurl = "h_" + helpurl.substring(begin, end); helpWin =window.open(helpurl,'CShelpwin','toolbar=0,  location=0, directories=0,status=0,menubar=0,scrollbars=0,  resizable=0, width=300,height=200'); setTimeout('helpWin.focus();',250); } </script>
  • 11. CSH using JS - “auto-mapped” field-level help <a href="#" onClick="openCSFieldHelp('ProjectNumber')"> <img src="fieldhelp.gif" width="18" height="18" border="0"></a> <script> function openCSFieldHelp(id) { helpurl = "h_" + id + ".htm"; helpWin =window.open(helpurl,'CShelpwin','toolbar=0,location=0,directories=0,  status=0, menubar=0,scrollbars=0, resizable=0,width=300,height=200'); setTimeout('helpWin.focus();',250); } </script>
  • 12. “Auto-mapped” links – working with developers  Help filenames must match application filenames (h_ + pagename.htm)  Same code for all page-level Help  Field help requires each field to have a name
  • 13. CSH using ASP Field-level Help Page-level Help
  • 14. CSH using ASP - field-level help JavaScript Code to Open the Help <a href="#" onClick="openFieldHelp('ProjectNumber')"> <img src="fieldhelp.gif" width="18" height="18" border="0"></a> <script> function openFieldHelp(topic) { helpWin=window.open('fieldhelp.asp?' + topic,'helpwin','toolbar=0,location=0,  directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=600,  height=400'); } </script>
  • 15. CSH using ASP - field-level help VBScript Code to Open the Database Dim objConn Set objConn = Server.CreateObject("ADODB.Connection") objConn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("dbfieldhelp.mdb") Dim objRS Set objRS = Server.CreateObject("ADODB.Recordset") objRS.Open "Tutorial", objConn, , , adCmdTable
  • 16. CSH using ASP - field-level help  "HlpText" is used to store defaults.  "HlpTextCustom" is used to store modified help topics.
  • 17. CSH using ASP - field-level help Code to Pull the Field Help from the Database Do While Not objRS.EOF If Request.QueryString = objRS("FieldID") Then If objRS("HlpTextCustom") <> "" Then Response.Write "<b>"& objRS("FieldLabel") & "</b><br> " & objRS("HlpTextCustom") Else Response.Write "<b>"& objRS("FieldLabel") & "</b><br> " & objRS("HlpText") End If End If objRS.MoveNext Loop
  • 18. CSH using ASP - working with developers  Help filenames can have any name  Field help requires separate help icons for fields
  • 19. Creating context-sensitive embedded UA  Can be created for fields or pages  Can be created using:  DIVs or spans  iFrames  AJAX  Each context-sensitive element needs an ID  JavaScript method: getElementById
  • 22. Opening embedded UA - divs Embedded UA <div id="helpPane">UA content</div> JavaScript Code function toggleUA() { if (document.getElementById('helpPane').style.display=="block") { document.getElementById('helpPane').style.display = "none"; } else { document.getElementById('helpPane').style.display = "block"; } }
  • 23. Opening embedded UA - iFrame Embedded UA <div id="helpPane"><iframe src="h_myApp.htm"></iframe></div> JavaScript Code function toggleUA() { if (document.getElementById('helpPane').style.display=="block") { document.getElementById('helpPane').style.display = "none"; } else { document.getElementById('helpPane').style.display = "block"; } }
  • 24. Opening embedded UA - AJAX Embedded UA <div id="helpPane></div> JavaScript Code function toggleUA() { if (document.getElementById('helpPane').style.display=="block") { document.getElementById('helpPane').style.display = "none"; } else { xmlhttp.open("GET", "h_myApp.htm",true); xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4) { document.getElementById('helpPane').innerHTML = xmlhttp.responseText; document.getElementById('helpPane').style.display = "block"; } } xmlhttp.send(null) } }
  • 25. Opening embedded UA - AJAX JavaScript Code to use XMLHttpRequest (IE specific) var xmlhttp=false; /*@cc_on @*/ /*@if (@_jscript_version >= 5) try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } @end @*/
  • 26. www.clickstart.net Scott DeLoach Founder, ClickStart Embedded UA consultant and trainer Certified Instructor, Flare | RoboHelp | Captivate scott@clickstart.net 404.520.0003 www.clickstart.net Questions?