[英]ASP.NET ImageButton link breaks site
我有一個asp.net圖片按鈕,該按鈕基本上根據用戶選擇顯示產品圖片,並相應地設置指向外部站點的鏈接。 當我單擊IE中的圖片按鈕時,它使網站崩潰,但在Chrome中似乎可以正常工作。 舉個例子:
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";
}
如果我啟動該站點並單擊該圖像,它將崩潰回到Visual Studio並顯示“ JavaScript嚴重錯誤,位於第32行的第17列”。 該錯誤僅說明:
function onclick(event)
{
javascript:void()
}
如果我將網址更改為www.google.com,則Google會加載“您的客戶發出的請求太大。這就是我們所知道的。” 有誰知道為什么會這樣? 如果我創建一個常規的LinkButton控件,並將OnClick事件設置為Response.Redirect(“ http://www.newegg.com ”),它就可以正常工作。
最好不要使用PostBackUrl
,而應使用內部包含圖像的ImageButton
或LinkButton
。
您發布的代碼未發送到Newegg的鏈接。 相反,您是跨站點腳本到Newegg。
換句話說,您正在執行HttpPost而不是HttpGet 。 我認為Newegg不會允許您訪問他們的網站。
如果您只想鏈接到其他站點,則只需使用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";
}
到目前為止,所有答案都需要您更改標記代碼以添加新項目或更改您正在使用的項目類型,在某些實現中這樣做可能會有不利影響。 如果您知道用戶已啟用Javascript,則可以使用“ window.location.href”將用戶重定向到您的目標頁面:
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;"
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.