Flex Alert box not showing text after single inverted comma - apache-flex

I am launching a flex app (swf) from a JSP page. i am sending a value using flashvars like below.
flashvars.message = '';
This message consists a single inverted comma in between...ex:- L'impression des pages
But when i want to show this message using alert box in flex like Alert.show(message);, it just shows
'L'. i mean it is not showing complete message. the text after inverted comma is missing....
it will be great if anyone can help me here...
Thanks,
Krish

You can try
encodeURIComponent()
to urlEncode your message before passing or simply use %27(urlEncoded value of ') in place of ' to see if it works.

Related

Label html string being read by screen reader

I've got some dynamically generated html building a drop down menu using the Dojo library. I need to make my code Accessibility compliant and right now the screenreader looks at the menu item and reads it as plain html:
menu.addChild(new MenuItem({
label: "<a onclick=window.location.href='sampleurl.com'
href="sampleurl.com">Sample Link</a> ...
Excuse the onclick, it's for a different issue, but what I'm getting is basically:
Tab down to first menu item
Screenreader: "Less than a onclick equals window dot location dot href equals sampleurl"... etc
I've tried using aria-hidden, but the screen reader just reads that as text, I'm using voice over on Mac OS, but I need it compliant for JAWS as well. Any tips or advice? Thanks!
label is used for the label (which can be in HTML), not for putting the full link html tag.
See on the following page how to use the Dojo library to generate menu items:
https://dojotoolkit.org/reference-guide/1.10/dijit/Menu.html
Example:
menu.addChild(new MenuItem({
label: "Sample Link",
onclick: function() {window.location.href='sampleurl.com';}}));
This would be easier to debug with a working example along with something stating what screen reader / browser combo you are using. At the bare minimum, show us the HTML output of your script, considering it is writing HTML for the screen reader to parse.
That being said, I suspect the missing / inconsistent quotes. Note that you start a string with double quotes, then go into the onclick attribute with no quotes around, then single quotes around its value, and then use double quotes around the href.
Alternatively, you are writing the entire string into the page and somehow HTML encoding it.
I suggest using a linting tool to check your JS.

Is it possible to set the color and other controls for a literal control in code in asp.net?

I am coding a dynamic asp.net page in which i want to have text boxes in a page and the number of text boxes depend on a previous user input. Since the number of text boxes are decided dynamically, I am going with designing them in code rather than in the aspx page.Now I need these fields to be mandatory and so want to indicate a RED asterisk symbol in front of the label corresponding to each text box.I am really new to working in .net and I couldn't figure out how to set a specific color to a labelcontrol. I found the following syntax while doing a google search but it didnt help.
Dim asteric As New LiteralControl()
asteric.Text = "<font color\"red\">*</font>"
I am not sure whether i am missing something very small here.I really appreciate any help in this issue.
The VB code is fine, the HTML it's trying to produce is not. You're missing an = symbol:
asteric.Text = "<font color=\"red\">*</font>"

Trying to render two spaces between sentences in an HTML error message

I know that browsers strip out extra spaces after a single space. I generally use " " to include a second space between sentences in my HTML.
Anyway, I'm using ASP.NET MVC 3 and am trying to display an error message that's being injected into the page via a view model (as opposed to being coded directly into the HTML template). When I add " " to the error string that I'm putting into the view model, I end up getting "&nbsp;" in the resulting web page, I assume because MVC 3 HTML encodes the final rendering of the view.
Anyone know a way to get around this so that I can get back my beloved double spacing between sentences? :)
Thanks!
Use Html.Raw() in the view or change your view model from a string an HtmlString. Either way will bypass the HTML encoding. As long as you are sure this will be a "safe" string to render, it should be fine.

How to control cursor (carat) position in TextInput in Flex 4.5

I need to handle diagraphs and then convert them on the fly to the proper unicode representation. For example when the user types in:
Sx
My app needs to replace it with:
Ŝ
Now, I've been able to do the replacement no problem. The issue though is that once I've done the replacement, the cursor goes to the beginning of the textbox rather than the end. As I'm trying to update the user's text on the fly, this obvious doesn't work.
How can I get it so that once I replace the text in the TextInput box, the cursor is on the right hand side rather than the left?
Found a solution.
All you have to do is instead of updating the whole text, wipe the current content and then use:
textInput.appendText()
Hopefully this will help someone else :)
The setSelection method is how you set the cursor
textInput.setSelection(textInput.text.length, textInput.text.length);
You can get the current beginning of the selection with TextInput.selectionAnchorPosition and the end of the selection with TextInput.selectionAnchorPosition
Take a look at this SO Question: How do you programmatically move the caret of a Flex TextArea to the end?
If you are using a textArea then this will work (from the selected answer):
textArea.selectionBeginIndex = textArea.length;
textArea.selectionEndIndex = textArea.length;
For the people coming here for the solution for the Spark textInput, this is the way:
textInput.selectRange(textInput.text.length, textInput.text.length);

Input Validation When Using a Rich Text Editor

I have an ASP.NET MVC application and I'm using CKEditor for text entry. I have turned off input validation so the HTML created from CKEditor can be passed into the controller action. I am then showing the entered HTML on a web page.
I only have certain buttons on CKEditor enabled, but obviously someone could send whatever text they want down. I want to be able to show the HTML on the page after the user has entered it. How can I validate the input, but still be able to show the few things that are enabled in the editor?
So basically I want to sanitize everything except for a few key things like bold, italics, lists and links. This needs to be done server side.
How about AntiXSS?
See my full answer here from similar question:
I have found that replacing the angel
brackets with encoded angel brackets
solves most problems
You could create a "whitelist" of sorts for the html tags you'd like to allow. You could start by HTML encoding the whole thing. Then, replace a series of "allowed" sequences, such as:
"<strong>" and "</strong>" back to "<strong>" and "</strong>"
"<em>" and "</em>" back to "<em>" and "</em>"
"<li>" and "</li>" back to ... etc. etc.
For things like the A tag, you could resort to a regular expression (since you'd want the href attribute to be allowed too). You would still want to be careful about XSS; someone else already recommended AntiXSS.
Sample Regexp to replace the A tags:
<a href="([^"]+)">
Then replace as
<a href="$1">
Good luck!

Resources