Javascript从url的函数中获取变量
我需要将用户鼠标/指针的垂直位置添加到链接中的url 我有以下脚本Javascript从url的函数中获取变量,javascript,Javascript,我需要将用户鼠标/指针的垂直位置添加到链接中的url 我有以下脚本 <script> function show_coords(event) { var verticalPosition=event.clientY; } </script> 功能显示协调(事件) { var verticalPosition=event.clientY; } 然后是页面正文中的链接: <a href="testplayer.cfm" onclick="location.hre
<script>
function show_coords(event)
{
var verticalPosition=event.clientY;
}
</script>
功能显示协调(事件)
{
var verticalPosition=event.clientY;
}
然后是页面正文中的链接:
<a href="testplayer.cfm"
onclick="location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+verticalPosition;return false;">link</a>
这会触发一个“位置=未定义”
在url中包含垂直位置的正确语法是什么
有什么建议吗?当您调用函数时
show_coords(event){
var verticalPosition = event.clientY;
}
您正在设置仅存在于该函数调用中的局部变量。你应该这样做
var verticalPosition;
show_coords(event){
verticalPosition = event.clientY;
}
我真正要做的是让你的HTML像:
<a onclick="redirect()">link</a>
进行以下更改:
<a href="testplayer.cfm"
onclick="location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords();return false;">link</a>
show_coords() { return event.clientY; }
show_coords(){return event.clientY;}
问题是您的变量verticalPosition不是全局变量,因此a标记的onClick事件无法读取它,因此克服这一问题的最佳方法是从函数返回值,然后从onClick事件调用函数。您做错了,请尝试此代码
<a href="testplayer.cfm" id="testPlayer">link</a>
<script>
$(document).ready(function(e){
$('#testPlayer').click(function(e)
{
location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords(e);
return false;
});
});
function show_coords(event)
{
return event.clientY;
}
</script>
$(文档).ready(函数(e){
$(“#testPlayer”)。单击(函数(e)
{
location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords(e);
返回false;
});
});
功能显示协调(事件)
{
returnevent.clientY;
}
函数setUrl(事件){
event.preventDefault();
var href=event.target.href,
yPos=event.clientY,
url=href+“?play=ai session.mp3&position=“+yPos;
window.location.href=url;
}
看看这个:
虽然在JSFIDLE中更改location.href并不实际,但这是一个工作版本,我只是将结果打印到页面上。希望有帮助,祝你好运 调试verticalPosition,链接可能是在添加处理程序之前生成的。谢谢,但这两个建议都不起作用。第一个继续给出未定义的。第二个从未重定向到该位置。虽然链接不存在,但是你的函数show_coords(event)是否在任何地方被调用?需要先调用它才能停止获取未定义的错误。如果您将其更改为onclick=“clickTestPlayer(事件)”
它应该可以工作。这是一个很好的答案。虽然,正如我所写的,我认为你可以不使用show_coords函数,而直接将event.clientY
放在那里。@nackjicholson:你是对的,但是如果他想要另一个事件的坐标,那么他也可以使用它。
<a href="testplayer.cfm" id="testPlayer">link</a>
<script>
$(document).ready(function(e){
$('#testPlayer').click(function(e)
{
location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+show_coords(e);
return false;
});
});
function show_coords(event)
{
return event.clientY;
}
</script>
<script type="text/javascript">
function setUrl(event) {
event.preventDefault();
var href = event.target.href,
yPos = event.clientY,
url = href + "?play=ai-session.mp3&position=" + yPos;
window.location.href = url;
}
</script>
<a href="target.cfm" onclick="setUrl(event)">link</a>