Javascript从url的函数变量

时间:2013-10-29 05:35:11

标签: javascript

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

我有以下脚本。

 <script>
function show_coords(event)
{
var verticalPosition=event.clientY;
}
</script>

然后是页面正文中的链接:

<a href="testplayer.cfm"
onclick="location.href='testplayer.cfm?play=ai-session3.mp3'+'&position='+verticalPosition;return false;">link</a>

这会触发“position=undefined

在网址中包含垂直位置的正确语法是什么?

有什么建议吗?

4 个答案:

答案 0 :(得分:0)

调用函数时

show_coords(event){
    var verticalPosition = event.clientY;
}

您正在设置一个仅存在于该函数调用中的局部变量。你应该做的就是这样。

var verticalPosition;
show_coords(event){
    verticalPosition = event.clientY;
}

我真正要做的就是让你的HTML像:

<a onclick="redirect()">link</a>

然后你的javascript(必须在脚本标签中)可以是:

var verticalPosition;
show_coords(event){
    verticalPosition = event.clientY;
}

function redirect(){
    window.location='testplayer.cfm?play=ai-session3.mp3&position='+verticalPosition;
 }

答案 1 :(得分:0)

进行以下更改:

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

问题是你的变量verticalPosition不是全局的,所以a标签的onClick事件无法读取它,因此克服这个问题的最好方法是从函数返回值并只调用函数onCLick活动。

答案 2 :(得分:0)

你做错了试试这段代码

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

答案 3 :(得分:0)

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

看看这个:

jsfiddle

这是一个有点工作的版本,但因为在jsfiddle中更改location.href是不切实际的,我只是将结果打印到页面。希望它有所帮助,祝你好运!