【问题标题】:how to insert a url/variable into onclick?如何在 onclick 中插入 url/变量?
【发布时间】:2009-09-14 19:40:27
【问题描述】:
这不能太复杂,但这让我感到困惑 - 我想通过 url (www.site.com/index.html?var=whatever.htm) 传递一个变量并在 onclick 中使用该变量函数,以便 onclick 按钮使用变量作为 url 去..onclick。
我试图代替历史按钮来执行此操作,因为该按钮位于一个框架内,并且单击其他框架会改变历史的实际情况。
我尝试了<input value="Go Back" onclick="parent.location(var)" type="button">,但显然我错过了一些关于如何让 javascript 识别该变量的内容。
感谢您的帮助。
【问题讨论】:
标签:
javascript
variables
onclick
【解决方案1】:
您需要使用document.location.search 来访问查询字符串。然后您需要解析该字符串以获得变量的值。
在您的 onclick 处理程序中,您应该将 document.location 设置为您的变量的值。
我建议在页面加载时添加您的点击处理程序,而不是将其与您的 HTML 元素内联。
window.onload = function () {
document.getElementById("go").onclick = function () {
var tokens = /\bvar=([^&]+)/.exec(document.location.search);
if (tokens) {
document.location = decodeURIComponent(tokens[1]);
}
};
};
编辑:对于解析查询字符串的更通用机制,试试这个:http://gist.github.com/143101
【解决方案2】:
你不应该使用
parent.location = var ?
【解决方案3】:
从 URL 访问变量:
首先,没有自动方式访问 url 参数。所以我们需要将 url 分成 3 组。
http://www.someurl.com/doSomeThing?one=1&two=2
我们需要得到一个 = 1 和两个 = 2 个部分。我们可以通过正则表达式来访问它。
var regexString = "[\\?&]var=([^&#]*)";
var regex = new RegExp( regexString );
var results = regex.exec( window.location.href );
如果结果是一个数组,第一个元素就是你的值。
window.location=results[1];
问候,
吉什努
【解决方案4】:
你有没有尝试过类似的东西
<script type="text/javascript">
var url = "http://gohere.com";
</script>
<input value="Go Back" onclick="document.location(url)" type="button" />
您还可以调用一个已设置“后退”位置的通用函数,例如
<script type="text/javascript">
function goBack(url){
document.location(url);
}
</script>
在这种情况下,您需要以某种方式设置 url 变量。思路是一样的。