以下是我用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页面。
我是对的吗?关于如何实现我的目标的任何建议?
谢谢。
答案 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