这不能太复杂,但令我感到困惑 - 我想通过网址传递变量(www.site.com/index.html?var=whatever.htm)并在onclick中使用变量函数使onclick按钮使用变量作为url转到..onclick。
我试图用这个来代替历史记录按钮,因为按钮在一个框架内,而点击其他框架会改变历史记录实际上是什么。
我尝试了<input value="Go Back" onclick="parent.location(var)" type="button">
,但很明显我错过了一些关于如何让javascript识别该变量的内容。
感谢您的帮助。
答案 0 :(得分: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
答案 1 :(得分:1)
你不应该使用
parent.location = var?
答案 2 :(得分:0)
你有没有试过像
这样的东西<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变量。这个想法是一样的。
答案 3 :(得分:0)
从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];
此致 吉希纳