Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

javascript missing : after property id

Posted on 2009-05-11
11
Medium Priority
?
1,148 Views
Last Modified: 2012-05-06
Hello,
I am trying to pass the string below as an argument to a javascript funtion generated when the user clicks on an icon.

The string I am trying to pass is:  {Mallard=3_Duckling,5_Juvenile,8_Adult}{Mallard=M,F}{Mallard=23_Ringtail/Redhead,24_Eclipse}

I am getting the error 'missing : after property id' and can't get my string to pass as it should.
Is this a problem with the curly brackets ? Is there any way of getting round it ?

any ideas ?

Thanks
// Workaround for IE bug
    if ((document.all) && (document.getElementById))
    {
        tinyPlusSubrowImage['onclick'] = new   Function('test(' + ageSexPhaseString+')');
    }
    else
    { // FireFox
        tinyPlusSubrowImage.setAttribute('onclick','test(' + ageSexPhaseString + ')');
    }

Open in new window

0
Comment
Question by:COMPSUPP
  • 6
  • 5
11 Comments
 
LVL 41

Expert Comment

by:HonorGod
ID: 24354372
in the THEN clause, you probably want to use something like:
tinyPlusSubrowImage['onclick'] = new function( test( ageSexPhaseString ) }

Open in new window

0
 

Author Comment

by:COMPSUPP
ID: 24354476
By the THEN clause, do you mean else ?

If I need to replace the curly brackets with something else, do I need slashes in the replace as they are special characters ?
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24355053
No, I mean the then clause.


Currently, you have it looking like:

tinyPlusSubrowImage['onclick'] = new   Function('test(' + ageSexPhaseString+')');

Problems:
- Javascript is case sensitive, so "new Function" isn't correct, it should be function
- After you make that change, it would look like:
  ... = new function('test(' + ageSexPhaseString+')')

  Is it your intension to pass the string (something like this) to the new anonymous function?

  test( ageSexPhaseString )
    if ( expression )
    {
        // Then clause
    }
    else
    { 
       // Else clause
    }

Open in new window

0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 

Author Comment

by:COMPSUPP
ID: 24355265
Thanks for that - might help with IE - my expression is to see if the browser is IE or Firefox.

I still have a problem in the else clause (which it uses when the browser is FireFox) trying to pass the string to the new anon function. I think this problem may be that there are curly brackets and commas in the string I am passing. I don't know if I can use escape characters or something to somehow get around this.
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24355393
Having "browser detect" code is rarely a good thing.

Generally, it is better to have "object detect" code.
For example:

http://www.quirksmode.org/js/detect.html
0
 

Author Comment

by:COMPSUPP
ID: 24355481
Yes, I thought object detect code was what I was using with:

if ((document.all) && (document.getElementById))
    {
    }else{
}
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24356056
Yes, I just tend to jump on the phrase "browser detect". :-)  Sorry about that.
0
 

Author Comment

by:COMPSUPP
ID: 24356255
Right, I have got rid of the : error by removing the starting curly brackets and replacing the closing curly brackets with double colons like this:

Guillemot=5_Juvenile,6_Immature,8_Adult::Guillemot=M,F::Guillemot=21_Bridled,22_Unbridled::

I need something to distinguish between the sections in the string, so that's why I cant get rid of the curly brackets and not replace them at all.

I now get a different error : missing ) after argument list

Different, but no less annoying. Any ideas ? Could there be a problem with passing a String with commas in it ?

Thanks for any insight !
0
 

Author Comment

by:COMPSUPP
ID: 24356277
Experts Exchange: Should I repost my question with a new title as I have a different error now ? I might get more responses to a new question..
Thanks
0
 

Accepted Solution

by:
COMPSUPP earned 0 total points
ID: 24356419
Ah...through trial and error I have found this works for FireFox. :

tinyPlusSubrowImage.setAttribute('onclick','test(\'' + ageSexPhaseString +'\')');
0
 
LVL 41

Expert Comment

by:HonorGod
ID: 24356729
The important thing is getting it to work.

The next most important, at least in my opinion, is understanding it.

I'm glad that you got it resolved.

Thanks for sharing the answer
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Strategic internal linking is often considered an SEO power technique, especially for content marketing. Do you need to hire an SEO agency to optimize you internal linking? No, this article will help you understand the basics of internal linking and…
Over time, the online landscape has altered considerably, but that’s nothing compared to the up-and-coming trends that will shape the web design industry in the coming year. Keep reading to find out which trends will shape B2B web design in 2018.
Any person in technology especially those working for big companies should at least know about the basics of web accessibility. Believe it or not there are even laws in place that require businesses to provide such means for the disabled and aging p…
The viewer will learn the basics of jQuery including how to code hide show and toggles. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery…
Suggested Courses

580 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question