2016-06-23 1 views
2

J'ai un bouton d'image asp.net qui affiche essentiellement une image d'un produit en fonction des sélections de l'utilisateur, et définit un lien vers un site externe en conséquence. Lorsque je clique sur le bouton Image dans IE, il bloque le site, mais il semble fonctionner correctement dans Chrome. A titre d'exemple:Lien de rupture de lien ImageButton d'ASP.NET

if (TotalWattage > 1 && TotalWattage < 275) //depending on wattage calculation, shows PSU recommendation 
    { 
     imgbtnPSURecommend.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg"; 
     lblPSURecommend.Text = "300w COOLMAX CM-300"; 
     imgbtnPSURecommend.PostBackUrl = "http://www.newegg.com"; 
    } 

Si je lance le site et cliquez sur l'image, il se bloque de nouveau à Visual Studio et dit « JavaScript erreur critique à la ligne 32, colonne 17. » L'erreur dit simplement:

function onclick(event) 
{ 
javascript:void() 
} 

Si je change l'URL pour www.google.com à la place, des charges Google avec « Votre client a émis une demande qui était trop grand C'est tout ce que nous savons. ». Est-ce que quelqu'un sait pourquoi cela pourrait se produire? Si je crée un contrôle LinkButton standard et définissez un événement OnClick sur Response.Redirect ("http://www.newegg.com") cela fonctionne très bien.

+0

Peut-on utiliser comme cette Sami

Répondre

0

Mieux vaut ne pas utiliser PostBackUrl, et utiliser à la place ImageButton ou LinkButton avec l'image à l'intérieur.

0

Le code que vous avez posté est et non en envoyant un lien vers Newegg. Au lieu de cela, vous êtes scripting intersite à Newegg.

En d'autres termes, vous font HttpPost au lieu de HttpGet. Je ne pense pas que Newegg vous laissera faire à leurs sites.

Si vous voulez juste un lien vers un autre site, vous pouvez simplement utiliser HyperLink.

<asp:HyperLink runat="server" ID="MyHyperLink" ></asp:HyperLink> 

if (TotalWattage > 1 && TotalWattage < 275) 
{ 
    MyHyperLink.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg"; 
    MyHyperLink.Text = "300w COOLMAX CM-300"; 
    MyHyperLink.NavigateUrl = "http://www.newegg.com"; 
} 
+0

Ok merci pour la suggestion. Fait intéressant, je l'ai fait exactement et il a encore cassé de la même manière. [J'ai trouvé cet article] (http://stackoverflow.com/questions/23155927/javascript-critical-error-at-line-5-column-9-in-unknown-source-location) et régler IE à -extoff pour aucun addons et il (votre méthode) fonctionne très bien quand je désactive IE addons. – Aeternus

0

Toutes les réponses à ce jour nécessitent de changer votre code de balisage pour ajouter un nouvel élément ou modifier le type d'élément que vous utilisez, il peut y avoir des inconvénients à cela dans certaines implémentations. Si vous connaissez l'utilisateur Javascript activé, vous pouvez utiliser « window.location.href » pour rediriger l'utilisateur vers votre page cible:

if (TotalWattage > 1 && TotalWattage < 275) //depending on wattage calculation, shows PSU recommendation 
    { 
     imgbtnPSURecommend.ImageUrl = "~/Images/PSU Tool Images/CM-300.jpg"; 
     lblPSURecommend.Text = "300w COOLMAX CM-300"; 
     imgbtnPSURecommend.OnClientClick = "window.location.href = 'http://www.newegg.com'; return false;" 
    }