![](/img/trans.png)
[英]Include Google analytics javascript code in asp.net web application
[英]Where to place Google Analytics code in ASP.NET web application
我想在我的ASP.NET Web應用程序中找到一個放置Google Analytics代碼的地方。 我想將它放在某處,而不必將代碼復制並粘貼到多個文件中。 有什么地方我可以注入它,我只需要包含它一次,所有頁面都會受到影響嗎? 不幸的是,我沒有使用MasterPages。
創建一個繼承自Page類的基頁,並將其插入到頭部。 然后將所有其他頁面從基頁繼承:-)
您可能需要有一個基頁,或者在需要該腳本的每個頁面上放置一個自定義控件。
在其中任何一個中,您都可以訂閱Init事件,然后執行以下操作:
protected override void OnInit(EventArgs e)
{
var myAnalyticsScript = @"<insert_analytics_script_here>";
this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "analyticScript", myAnalyticsScript);
}
如果選擇基頁,則可以通過不從基頁繼承來控制腳本顯示的頁面。 如果選擇控件,則不要將控件放在頁面上。
為所有頁面創建基頁並在那里添加谷歌分析。 然后從這個繼承每個新頁面。
例如
class PageWithGoogleAnalytics : Page
{
//some actual code to add analytics
}
class MyCustomPage : PageWithGoogleAnalytics {}
另一個建議,是的,這是一個大規模的黑客攻擊,但你可以編寫一個HttpModule,在ASP.NET生成HTML之后但在IIS將請求發送到瀏覽器之前將其自動注入頁面。
注意:我真的不建議這個選項,但它可能是你唯一的選擇。
您可以將其放入頁面,然后將此頁面包含在您想要檢查的任何位置。 但是masterpage是最好的。
- - 更新 -
在app_code中添加以下類
public class WebsitePageBase : System.Web.UI.Page
{
public const string analyticsCode = "your script goes here..."
protected void Page_Load(Object sender, e as EventArgs)
{
ClientScript.RegisterStartupScript(Me.GetType(),"__analytics_script",analyticsCode )
}
}
當你添加一個新的aspx頁面時,你必須繼承新的基類,例如你要添加default.aspx你的后端類應該是這樣的:
public partial class _default : WebsitePageBase
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.