рд╣реЙрдмреА рдпрд╛ рд╡рд╣рд╛рдБ рдФрд░ рд╡рд╛рдкрд╕
рдХреБрдЫ рд╕рдордп рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдЕрдкрдиреЗ рд▓рд╛рд╡рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЙрдирдХреЗ рдореВрд▓реНрдп рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП js рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЪрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рддрд░реАрдХреЗ рдЦреЛрдЬрдиреЗ рдХреА рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рд╡рд╛рд▓ рд╣рдм рдкрд░ рд╣рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдпрд╛ рд╢рд╛рдпрдж рддрд╛рдХрдд рдиреЗ рдореБрдЭреЗ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЦреЛрдЬ рдЕрдм рдЗрддрдирд╛ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
рдЬреИрд╕рд╛ рдХрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдЬ рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХреБрдЫ рдкреНрд░рдХрд╛рд╢ рдбрд╛рд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИ!
рдХрд╛рд░реНрдп
рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ - рдПрдХ рд╕рдВрдкрд╛рджрдХ рдкреГрд╖реНрда рдХреЗ рд╕рд╛рде рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЖрд╡реЗрджрди рд╣реИ, рдПрдХ рд╕рдВрдкрд╛рджрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдореБрдлреНрдд
рдирд╛рдЗрд╕рдПрдбрд┐рдЯ рд╣реИ ред рдмрд╛рд╣рд░реА рд╕рдВрдкрд╛рджрдХ рдХреНрдпреЛрдВ? рдореБрдЭреЗ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдЬрд▓реНрджреА рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ + рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛ рдХреЛ html рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдмрд╛рдЗрдХ рд▓рд┐рдЦрдирд╛ рдХрд╛рдлреА рдмреЗрд╡рдХреВрдл рд╣реЛрдЧрд╛ред рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рд╡рд┐рдЬреЗрдЯ рдХреЛ swt рдкрд░ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╛ рддреЛ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреБрд░рд╛рдиреА рд╣реЛ рдЧрдИ рд╣реИ рдпрд╛ рд▓реЗрдЦрдХ рдмреЗрдХрд╛рд░ рд╣реЛ рдЧрдпрд╛ рд╣реИ - рд╡рд┐рдЬреЗрдЯ рдиреЗ рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ред
рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ рджрд░реНрдЬ / рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЪрдорддреНрдХрд╛рд░ рдмрдЯрди рджрдмрд╛рддрд╛ рд╣реИ рдФрд░ рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЛ рд╡рд╣ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЕрднреА рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред
рдирд┐рд░реНрдгрдп
рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдорд╛рдзрд╛рди рд╣реИ:
- рд╡рд┐рдзрд┐ рд╕рдВрдЦреНрдпрд╛ 1 - рдЬреЗрдПрдирдЖрдИ
рдорди рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рдЙрдкрдпреЛрдЧреА рдЪреАрдЬрд╝ рдереА html рдПрдбрд┐рдЯрд░ рдкреЗрдЬ рдореЗрдВ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдЯреЗрдХреНрд╕реНрдЯ рдмреЙрдХреНрд╕ рдмрдирд╛рдирд╛, рдЬреЛ рдмрд┐рд▓реНрдЯ-рдЗрди рдЬрд╛рд╡рд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рднрд░рд╛ рд╣реБрдЖ рд╣реЛ, рдФрд░ рдЙрд╕ рдкрд░ рдПрдбрд┐рдЯрд░ рд╕реЗрдЯ рдХрд░реЗрдВ:
<script type="text/javascript"> var textArea; bkLib.onDomLoaded(function() { new nicEditor({fullPanel : true}).panelInstance('area1'); var el = document.getElementById('EDITOR').getElementsByTagName('div'); textArea = el[el.length-1]; }); </script>
рдЖрдЧреЗ рдЖрд╡реЗрджрди рдореЗрдВ рд╣реА, рд╣рдореЗрдВ рдПрдХ рджреЗрд╢реА рдлрд╝рдВрдХреНрд╢рди рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рд╣рдо рдХреЙрд▓ рдХрд░реЗрдВрдЧреЗ:
static class CustomFunction extends BrowserFunction {
рдПрдХ рдирдпрд╛ рдХрд╕реНрдЯрдордбреЗрдЯрд╛ рдмрдирд╛рдиреЗ рд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд┐рдзрд┐ рд╕реНрдЯреИрдХреЛрд╡рд░рдлрд╝реНрд▓реЛ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХреА рдЧрдИ рдереА
рдПрдХ рд╡рд╕реНрддреБ рдмрдирд╛рдПрдБ:
new CustomFunction(browser, "getTextAreaContent");
рдЕрдм рд╣рдо рдЧрд░реНрд╡ рд╕реЗ рдЙрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╣рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗ рдЪрд╛рд╣рд┐рдП:
browser.execute("var cont = textArea.innerHTML; getTextAreaContent(cont);");
- рд╡рд┐рдзрд┐ рд╕рдВрдЦреНрдпрд╛ 2 - рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрдирд╛рдПрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрд▓ рдХрд░реЗрдВ
рдХреЛрдИ рднреА рд╣рдореЗрдВ рдПрдХ рдЪрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╡рд╣рд╛рдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЖрд╡рд╢реНрдпрдХ рдЯреБрдХрдбрд╝рд╛ рд▓рд┐рдЦреЗрдВ рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ рдХрд╕реНрдЯрдо рдИрд╡реЗрдВрдЯ рдмрдирд╛рдПрдЧреА, рдЬреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓ рджреЗрдЧрд╛:
final String SELECTIONSCRIPT = "function handleSelection() { " + " var selTxt = ''; " + " if (window.getSelection) { " + " selTxt = window.getSelection(); " + " } else if (document.getSelection) { " + " selTxt = document.getSelection(); " + " } else if (document.selection) { " + " selTxt = document.selection.createRange().text; " + " } " + " window.status = '::SELECTION::' + selTxt; " + "} " + "document.attachEvent('onmouseup', handleSelection); "; final Browser browser = new Browser(shell, SWT.NONE); browser.addStatusTextListener(new StatusTextListener() { public void changed(StatusTextEvent arg0) { if (arg0.text.startsWith("::SELECTION::")) { String selection = arg0.text.substring("::SELECTION::".length()); System.out.println(selection); } }}); browser.addProgressListener(new ProgressAdapter() { @Override public void completed(ProgressEvent arg0) { browser.execute(SELECTIONSCRIPT); } });
рд╕рдЪ рд╣реИ, рдпрд╣рд╛рдВ рд╣рдо рдХреБрдЫ рдРрд╕реЗ рдиреБрдХрд╕рд╛рдиреЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд┐рдирдХрд╛ рд╡рд┐рднрд┐рдиреНрди рдордВрдЪреЛрдВ рдкрд░ рдХрд┐рд╕реА рдиреЗ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ - рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рд╡рд┐рдВрдбреЛ рд╕реНрдерд┐рддрд┐ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдореЛрдЬрд╝рд┐рд▓рд╛ рдореЗрдВ рдЖрдкрдХреЛ рдлреНрд▓реИрдЧ рдбреЙрдо рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ ред.dableable_window_status_change рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЧрд▓рдд: configред
рдпрд╣рд╛рдБ рджреЛрдиреЛрдВ рддрд░реАрдХреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдкрддрд╛ рд╣реИрдВ рдФрд░ рдЬрд┐рдирдХрд╛ рдореИрдВрдиреЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ ... рдореБрдЭреЗ рд▓реЗрдЦ рдкрд░ рдирдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреАред рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред