2011-04-07 65 views
0

以下是我用c#編寫的asp.net頁面。其中someURL是包含html鏈接(如http:\ www.somewebsite.com)的asp.net字符串變量。將變量從asp.net頁面傳遞到使用javascript的新頁面

ClientScript.RegisterStartupScript(typeof(Page), "openPage", "<script type='text/JavaScript'>var link1 = document.getElementById('<%=someURL.ClientID%>');window.open(link1);</script>"); 

的目標是當上述的JavaScript執行它會打開一個新的瀏覽器頁面,包含someURL字符串中的URL(HTTP:\ www.somewebsite.com等)

我的問題是它會打開一個沒有任何內容的空白頁面。我想我知道爲什麼... JavaScript代碼中引用的someURL變量不是來自調用的asp.net頁面。

我對不對?有關如何實現我的目標的任何建議?

謝謝。

+0

的document.getElementById( 'HTTP:\ www.somewebsite.com')是沒有意義的。請解釋你認爲這是做什麼。 – herostwist 2011-04-07 20:58:47

+0

現在你指出了它。這不會做我認爲會的事。但我最初的目標是用javascript代替asp.net的Response.Redirect(someURL),它將執行相同的操作,但也會打開一個新的瀏覽器窗口,而不是與asp.net的Response.Redirect一樣的窗口。 有什麼建議嗎? – user523234 2011-04-08 01:30:48

回答

1

不確定此目的。但變量link1是對DOM元素的引用。

您需要獲取DOM element的文本(取決於您的ASP頁面中的哪種控件someURL),以便將它傳遞給其他腳本。

這絕不是優雅或建議,但將努力

C# - 在您的代碼隱藏頁

public string nextURL = "http://yourdomain.com/yourpage.aspx" 

ASP.NET - 在你的aspx頁面

<script type="text/javascript"> 

    var myLink = '<%= nextURL %>'; 

    function newPage() { 
    window.open(myLink); 
    } 

</script> 
+0

我最初的目標是用javascript代替asp.net的Response.Redirect(someURL),它將執行相同的操作,但也會打開一個新的瀏覽器窗口,而不是與asp.net的Response.Redirect一樣的窗口。任何建議? – user523234 2011-04-08 01:33:02

+0

他回答了你的問題。你傳遞的open()方法是一個DOM元素而不是一個字符串。 – 2011-04-08 01:57:47

+0

雖然我意識到這背後的概念。我正在尋找一些特定的語法幫助。看到我的其他評論我的最終編碼。 – user523234 2011-04-08 17:26:23

0

爲益這些新的學習者,在經過一番鬥爭之後,我的最終代碼將爲我完成這項工作:

在我的呼喚cs文件:

protected String someURL; //global variable 

    ClientScript.RegisterStartupScript(typeof(Page), "openPage", "<script type='text/JavaScript'>window.open(currentLinkURL);</script>"); 

在我的.aspx文件:

var currentLinkURL = '<% = someURL %>'; //currentLinkURL is a javascript variable 
+0

我得到了這個幫助: http://stackoverflow.com/questions/553813/how-do-i-give-javascript-variables-data-from-asp-net-variables – user523234 2011-04-08 17:34:56

相關問題