Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net (http://www.velocityreviews.com/forums/f29-asp-net.html)
-   -   RegisterStartupScript and Firefox (http://www.velocityreviews.com/forums/t591291-registerstartupscript-and-firefox.html)

Dune88 02-13-2008 01:53 AM

RegisterStartupScript and Firefox
 
I've got some code that uses Page.ClientScript.RegisterStartupScript to call
a javascript function from the Page_Load method in the code behind.

The code works fine in IE but the javascript function is not called at all
in Firefox. I stripped my code back to the basics and all I have now is a
webform with no controls on it and the following in the code behind:

protected void Page_Load(object sender, EventArgs e)
{
Page.ClientScript.RegisterStartupScript(typeof(Pag e),
"TestScript", "<script type='text/jscript'>alert('test script');</script>");
}

This very basic webform works in IE but not in Firefox.

I'm running .NET Framework 3.5, IE 7 and Firefox 2.0.0.11. I added
"onload="alert('onLoad')"" to the body tag to ensure that javascript was
enabled and popups were not being blocked in Firefox. The onLoad alert came
up fine but the alert added by the RegisterStartupScript did not come up.

Can anyone shed any light on this?

Cheers

Jonathan Wood 02-13-2008 02:20 AM

Re: RegisterStartupScript and Firefox
 
I haven't done much with RegisterStartupScript but it might be helpful to
see what the resulting HTML is, especially if you've narrowed it down to a
bare-bones page.

--
Jonathan Wood
SoftCircuits Programming
http://www.softcircuits.com

"Dune88" <Dune88@discussions.microsoft.com> wrote in message
news:FDE8F932-5601-4F7F-874C-8AADF3EA9FE4@microsoft.com...
> I've got some code that uses Page.ClientScript.RegisterStartupScript to
> call
> a javascript function from the Page_Load method in the code behind.
>
> The code works fine in IE but the javascript function is not called at all
> in Firefox. I stripped my code back to the basics and all I have now is a
> webform with no controls on it and the following in the code behind:
>
> protected void Page_Load(object sender, EventArgs e)
> {
> Page.ClientScript.RegisterStartupScript(typeof(Pag e),
> "TestScript", "<script type='text/jscript'>alert('test
> script');</script>");
> }
>
> This very basic webform works in IE but not in Firefox.
>
> I'm running .NET Framework 3.5, IE 7 and Firefox 2.0.0.11. I added
> "onload="alert('onLoad')"" to the body tag to ensure that javascript was
> enabled and popups were not being blocked in Firefox. The onLoad alert
> came
> up fine but the alert added by the RegisterStartupScript did not come up.
>
> Can anyone shed any light on this?
>
> Cheers



Peter Bromberg [C# MVP] 02-13-2008 02:30 AM

RE: RegisterStartupScript and Firefox
 
How about trying:
script type='text/javascript'

"jscript" is Microsoft - specific and the kind people at Firefox apparently
don't take kindly to it.
-- Peter
Site: http://www.eggheadcafe.com
UnBlog: http://petesbloggerama.blogspot.com
MetaFinder: http://www.blogmetafinder.com


"Dune88" wrote:

> I've got some code that uses Page.ClientScript.RegisterStartupScript to call
> a javascript function from the Page_Load method in the code behind.
>
> The code works fine in IE but the javascript function is not called at all
> in Firefox. I stripped my code back to the basics and all I have now is a
> webform with no controls on it and the following in the code behind:
>
> protected void Page_Load(object sender, EventArgs e)
> {
> Page.ClientScript.RegisterStartupScript(typeof(Pag e),
> "TestScript", "<script type='text/jscript'>alert('test script');</script>");
> }
>
> This very basic webform works in IE but not in Firefox.
>
> I'm running .NET Framework 3.5, IE 7 and Firefox 2.0.0.11. I added
> "onload="alert('onLoad')"" to the body tag to ensure that javascript was
> enabled and popups were not being blocked in Firefox. The onLoad alert came
> up fine but the alert added by the RegisterStartupScript did not come up.
>
> Can anyone shed any light on this?
>
> Cheers


Mark Rae [MVP] 02-13-2008 10:53 AM

Re: RegisterStartupScript and Firefox
 
"Dune88" <Dune88@discussions.microsoft.com> wrote in message
news:FDE8F932-5601-4F7F-874C-8AADF3EA9FE4@microsoft.com...

> protected void Page_Load(object sender, EventArgs e)
> {
> Page.ClientScript.RegisterStartupScript(typeof(Pag e),
> "TestScript", "<script type='text/jscript'>alert('test
> script');</script>");
> }
>
> This very basic webform works in IE but not in Firefox.
>
> I'm running .NET Framework 3.5, IE 7 and Firefox 2.0.0.11. I added
> "onload="alert('onLoad')"" to the body tag to ensure that javascript was
> enabled and popups were not being blocked in Firefox. The onLoad alert
> came
> up fine but the alert added by the RegisterStartupScript did not come up.
>
> Can anyone shed any light on this?


That's because you're telling the browser that it should process a script
type of text/jscript - that will only work in IE, Opera and Safari:
http://krijnhoetmer.nl/stuff/javascript/mime-types/

If you *must* include the script tags, make sure you use
type='text/javascript', which will also work in FireFox etc...

However, it's much safer to let ASP.NET output the script tags dynamically
according to what browser it detects, by using the boolean overload of the
RegisterStartupScript method:
ClientScript.RegisterStartupScript(typeof(Page), "TestScript", "alert('test
script');", True);


--
Mark Rae
ASP.NET MVP
http://www.markrae.net


Dune88 02-13-2008 09:59 PM

Re: RegisterStartupScript and Firefox
 
Thanks for all the replies!

Changing "jscript" to "javascript" worked perfectly as did using the boolean
overload.

Doh! I should have spotted that earlier!

"Mark Rae [MVP]" wrote:

> "Dune88" <Dune88@discussions.microsoft.com> wrote in message
> news:FDE8F932-5601-4F7F-874C-8AADF3EA9FE4@microsoft.com...
>
> > protected void Page_Load(object sender, EventArgs e)
> > {
> > Page.ClientScript.RegisterStartupScript(typeof(Pag e),
> > "TestScript", "<script type='text/jscript'>alert('test
> > script');</script>");
> > }
> >
> > This very basic webform works in IE but not in Firefox.
> >
> > I'm running .NET Framework 3.5, IE 7 and Firefox 2.0.0.11. I added
> > "onload="alert('onLoad')"" to the body tag to ensure that javascript was
> > enabled and popups were not being blocked in Firefox. The onLoad alert
> > came
> > up fine but the alert added by the RegisterStartupScript did not come up.
> >
> > Can anyone shed any light on this?

>
> That's because you're telling the browser that it should process a script
> type of text/jscript - that will only work in IE, Opera and Safari:
> http://krijnhoetmer.nl/stuff/javascript/mime-types/
>
> If you *must* include the script tags, make sure you use
> type='text/javascript', which will also work in FireFox etc...
>
> However, it's much safer to let ASP.NET output the script tags dynamically
> according to what browser it detects, by using the boolean overload of the
> RegisterStartupScript method:
> ClientScript.RegisterStartupScript(typeof(Page), "TestScript", "alert('test
> script');", True);
>
>
> --
> Mark Rae
> ASP.NET MVP
> http://www.markrae.net
>
>


Misliplavo 06-26-2009 08:51 AM

Hi all,
I have a similar problem with FF and JavaScript :)
It works in IE but not in FF ...

<b>Javascript :</b>

function ChangeMessage(element) {
element.value = 1 - element.value;
__doPostBack(element.id, '');
}

function ValidateAddClub(element) {
alert(element);
if (element.value == "Free") {
return true;
}
return false;
}


<b>Code behind :</b>

string javaScriptEvent = string.Empty;
javaScriptEvent = string.Format("javascript:ChangeMessage({0});", this.hdnMessageStatus.ClientID);
this.txtNewClubName.Attributes.Add("onblur", javaScriptEvent);
// the first function works (?!)


javaScriptEvent = string.Format("javascript:return ValidateAddClub({0});", this.hdnValidationStatus.ClientID); ClientID, UniqueID - same result...
this.lbtnAdd.Attributes.Add("onclick", javaScriptEvent);
// but this one doesnt...


<b>HTML :</b> (page source)

<div class="submiter">
<a onclick="javascript:return ValidateAddClub(ctl00_cphPage_hdnValidationStatus) ;" id="ctl00_cphPage_lbtnAdd" class="roll" href="javascript:__doPostBack('ctl00$cphPage$lbtnA dd','')">ADD CLUB</a>
</div>

I would appreciate if someone answer to me...
Thx... :)


All times are GMT. The time now is 07:38 AM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.