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

时间:2011-04-07 20:29:53

标签: c# javascript asp.net client-side

以下是我用c#编写的asp.net页面。 someURL是包含html链接的asp.net字符串变量,例如http:\ www.somewebsite.com。

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

目标是当上面的javascript执行时,它将打开一个新的浏览器页面,其中url包含在someURL字符串中(http:\ www.somewebsite.com等)

我的问题是它打开了一个空白页面,网址中没有任何内容。而且我想我知道为什么... javascript代码中引用的someURL变量不是来自调用的asp.net页面。

我是对的吗?关于如何实现我的目标的任何建议?

谢谢。

2 个答案:

答案 0 :(得分:1)

不确定这个目的。但变量link1是对DOM元素的引用。

您需要获取该文本(取决于您的ASP页面中的控件someURL的类型)DOM element的值,以便将其传递给其他脚本。

这绝不是优雅的或推荐的,但可以使用

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>

答案 1 :(得分: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