Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript从url的函数中获取变量_Javascript - Fatal编程技术网

Javascript从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

我需要将用户鼠标/指针的垂直位置添加到链接中的url

我有以下脚本

 <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>