将变量从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页面。
我对不对?有关如何实现我的目标的任何建议?
谢谢。
不确定此目的。但变量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>
我最初的目标是用javascript代替asp.net的Response.Redirect(someURL),它将执行相同的操作,但也会打开一个新的浏览器窗口,而不是与asp.net的Response.Redirect一样的窗口。任何建议? – user523234 2011-04-08 01:33:02
他回答了你的问题。你传递的open()方法是一个DOM元素而不是一个字符串。 – 2011-04-08 01:57:47
虽然我意识到这背后的概念。我正在寻找一些特定的语法帮助。看到我的其他评论我的最终编码。 – 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
我得到了这个帮助: http://stackoverflow.com/questions/553813/how-do-i-give-javascript-variables-data-from-asp-net-variables – user523234 2011-04-08 17:34:56
的document.getElementById( 'HTTP:\ www.somewebsite.com')是没有意义的。请解释你认为这是做什么。 – herostwist 2011-04-07 20:58:47
现在你指出了它。这不会做我认为会的事。但我最初的目标是用javascript代替asp.net的Response.Redirect(someURL),它将执行相同的操作,但也会打开一个新的浏览器窗口,而不是与asp.net的Response.Redirect一样的窗口。 有什么建议吗? – user523234 2011-04-08 01:30:48