将变量从asp.net页面传递到使用javascript的新页面

问题描述:

以下是我用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

不确定此目的。但变量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

为益这些新的学习者,在经过一番斗争之后,我的最终代码将为我完成这项工作:

在我的呼唤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