2012-04-07 108 views
0

嗨我想添加谷歌书预览按钮到我的网站。 它的代码是一样的东西:将脚本添加到ASPX页面

<script> GBS_setLanguage('en');</script>    
<script>GBS_insertPreviewButtonPopup('ISBN:0596009208');</script> 

现在的问题是我得到的前一页的ISBN号。 所以我必须将其包含在页面上的C#代码中。 那么如何做到这一点呢? 我试过但它只是不编译

回答

0

使用此代码做我想做的事......但它将脚本/谷歌预览按钮(在我的情况下)放到页眉或页脚。但没有其他方式来做到这一点。

  HtmlGenericControl script1 = new HtmlGenericControl("script"); 
     script1.Attributes.Add("type", "text/javascript"); 
     script1.Attributes.Add("src", "http://books.google.com/books/previewlib.js"); 
     this.Page.Header.Controls.Add(script1); 

     string GoogleScript = ""; 

     string isbncode = ""; 
     if (Page.Request.QueryString["isbn"] != null) 
      isbncode = Page.Request.QueryString["isbn"]; 

     GoogleScript = "GBS_setLanguage('en'); GBS_insertPreviewButtonPopup('ISBN:"; 
     isbncode = isbncode + "');"; 

     HtmlGenericControl script3 = new HtmlGenericControl("script"); 
     script3.Attributes.Add("type", "text/javascript"); 
     script3.InnerHtml = GoogleScript + isbncode ; 
     this.Page.Controls.Add(script3); 
+0

你应该已经注入的是使用JavaScript的RegisterClientScriptBlock作为Sarwar026建议 - 更清洁(和预期)做这样的这样的东西的方式。 – Andrey 2012-04-08 18:38:32

0

您可以轻松地将ISBN作为查询字符串参数包含在url中,并将其拖入JavaScript代码中,而无需包含服务器端。 As seen here

function getQueryString() { 
    var result = {}, queryString = location.search.substring(1), 
     re = /([^&=]+)=([^&]*)/g, m; 

    while (m = re.exec(queryString)) { 
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
    } 

    return result; 
} 

//url: www.yourwebsite.com?isbn=123456789 
var _ISBN = getQueryString()["isbn"]; 
GBS_setLanguage('en'); 
GBS_insertPreviewButtonPopup(_ISBN); 
+0

真棒:)它工作谢谢人:)真的很感谢帮助:) – AnujKu 2012-04-09 04:55:17

+0

没问题。确保你选中并且提出你在stackoverflow上找到有用的答案。它可以帮助其他人更迅速地找到答案,并为回答问题的人建立代表。 :) – 2012-04-09 18:32:18